In [ ]:
!pip install kaggle
!mkdir -p ~/.kaggle
!cp kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
!kaggle datasets download -d andrewmvd/road-sign-detection
!unzip road-sign-detection.zip
Requirement already satisfied: kaggle in /usr/local/lib/python3.10/dist-packages (1.6.17)
Requirement already satisfied: six>=1.10 in /usr/local/lib/python3.10/dist-packages (from kaggle) (1.16.0)
Requirement already satisfied: certifi>=2023.7.22 in /usr/local/lib/python3.10/dist-packages (from kaggle) (2024.8.30)
Requirement already satisfied: python-dateutil in /usr/local/lib/python3.10/dist-packages (from kaggle) (2.8.2)
Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from kaggle) (2.32.3)
Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from kaggle) (4.66.5)
Requirement already satisfied: python-slugify in /usr/local/lib/python3.10/dist-packages (from kaggle) (8.0.4)
Requirement already satisfied: urllib3 in /usr/local/lib/python3.10/dist-packages (from kaggle) (2.2.3)
Requirement already satisfied: bleach in /usr/local/lib/python3.10/dist-packages (from kaggle) (6.1.0)
Requirement already satisfied: webencodings in /usr/local/lib/python3.10/dist-packages (from bleach->kaggle) (0.5.1)
Requirement already satisfied: text-unidecode>=1.3 in /usr/local/lib/python3.10/dist-packages (from python-slugify->kaggle) (1.3)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->kaggle) (3.4.0)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->kaggle) (3.10)
cp: cannot stat 'kaggle.json': No such file or directory
chmod: cannot access '/root/.kaggle/kaggle.json': No such file or directory
Dataset URL: https://www.kaggle.com/datasets/andrewmvd/road-sign-detection
License(s): CC0-1.0
Downloading road-sign-detection.zip to /content
 99% 217M/218M [00:12<00:00, 23.2MB/s]
100% 218M/218M [00:12<00:00, 18.9MB/s]
Archive:  road-sign-detection.zip
  inflating: annotations/road0.xml   
  inflating: annotations/road1.xml   
  inflating: annotations/road10.xml  
  inflating: annotations/road100.xml  
  inflating: annotations/road101.xml  
  inflating: annotations/road102.xml  
  inflating: annotations/road103.xml  
  inflating: annotations/road104.xml  
  inflating: annotations/road105.xml  
  inflating: annotations/road106.xml  
  inflating: annotations/road107.xml  
  inflating: annotations/road108.xml  
  inflating: annotations/road109.xml  
  inflating: annotations/road11.xml  
  inflating: annotations/road110.xml  
  inflating: annotations/road111.xml  
  inflating: annotations/road112.xml  
  inflating: annotations/road113.xml  
  inflating: annotations/road114.xml  
  inflating: annotations/road115.xml  
  inflating: annotations/road116.xml  
  inflating: annotations/road117.xml  
  inflating: annotations/road118.xml  
  inflating: annotations/road119.xml  
  inflating: annotations/road12.xml  
  inflating: annotations/road120.xml  
  inflating: annotations/road121.xml  
  inflating: annotations/road122.xml  
  inflating: annotations/road123.xml  
  inflating: annotations/road124.xml  
  inflating: annotations/road125.xml  
  inflating: annotations/road126.xml  
  inflating: annotations/road127.xml  
  inflating: annotations/road128.xml  
  inflating: annotations/road129.xml  
  inflating: annotations/road13.xml  
  inflating: annotations/road130.xml  
  inflating: annotations/road131.xml  
  inflating: annotations/road132.xml  
  inflating: annotations/road133.xml  
  inflating: annotations/road134.xml  
  inflating: annotations/road135.xml  
  inflating: annotations/road136.xml  
  inflating: annotations/road137.xml  
  inflating: annotations/road138.xml  
  inflating: annotations/road139.xml  
  inflating: annotations/road14.xml  
  inflating: annotations/road140.xml  
  inflating: annotations/road141.xml  
  inflating: annotations/road142.xml  
  inflating: annotations/road143.xml  
  inflating: annotations/road144.xml  
  inflating: annotations/road145.xml  
  inflating: annotations/road146.xml  
  inflating: annotations/road147.xml  
  inflating: annotations/road148.xml  
  inflating: annotations/road149.xml  
  inflating: annotations/road15.xml  
  inflating: annotations/road150.xml  
  inflating: annotations/road151.xml  
  inflating: annotations/road152.xml  
  inflating: annotations/road153.xml  
  inflating: annotations/road154.xml  
  inflating: annotations/road155.xml  
  inflating: annotations/road156.xml  
  inflating: annotations/road157.xml  
  inflating: annotations/road158.xml  
  inflating: annotations/road159.xml  
  inflating: annotations/road16.xml  
  inflating: annotations/road160.xml  
  inflating: annotations/road161.xml  
  inflating: annotations/road162.xml  
  inflating: annotations/road163.xml  
  inflating: annotations/road164.xml  
  inflating: annotations/road165.xml  
  inflating: annotations/road166.xml  
  inflating: annotations/road167.xml  
  inflating: annotations/road168.xml  
  inflating: annotations/road169.xml  
  inflating: annotations/road17.xml  
  inflating: annotations/road170.xml  
  inflating: annotations/road171.xml  
  inflating: annotations/road172.xml  
  inflating: annotations/road173.xml  
  inflating: annotations/road174.xml  
  inflating: annotations/road175.xml  
  inflating: annotations/road176.xml  
  inflating: annotations/road177.xml  
  inflating: annotations/road178.xml  
  inflating: annotations/road179.xml  
  inflating: annotations/road18.xml  
  inflating: annotations/road180.xml  
  inflating: annotations/road181.xml  
  inflating: annotations/road182.xml  
  inflating: annotations/road183.xml  
  inflating: annotations/road184.xml  
  inflating: annotations/road185.xml  
  inflating: annotations/road186.xml  
  inflating: annotations/road187.xml  
  inflating: annotations/road188.xml  
  inflating: annotations/road189.xml  
  inflating: annotations/road19.xml  
  inflating: annotations/road190.xml  
  inflating: annotations/road191.xml  
  inflating: annotations/road192.xml  
  inflating: annotations/road193.xml  
  inflating: annotations/road194.xml  
  inflating: annotations/road195.xml  
  inflating: annotations/road196.xml  
  inflating: annotations/road197.xml  
  inflating: annotations/road198.xml  
  inflating: annotations/road199.xml  
  inflating: annotations/road2.xml   
  inflating: annotations/road20.xml  
  inflating: annotations/road200.xml  
  inflating: annotations/road201.xml  
  inflating: annotations/road202.xml  
  inflating: annotations/road203.xml  
  inflating: annotations/road204.xml  
  inflating: annotations/road205.xml  
  inflating: annotations/road206.xml  
  inflating: annotations/road207.xml  
  inflating: annotations/road208.xml  
  inflating: annotations/road209.xml  
  inflating: annotations/road21.xml  
  inflating: annotations/road210.xml  
  inflating: annotations/road211.xml  
  inflating: annotations/road212.xml  
  inflating: annotations/road213.xml  
  inflating: annotations/road214.xml  
  inflating: annotations/road215.xml  
  inflating: annotations/road216.xml  
  inflating: annotations/road217.xml  
  inflating: annotations/road218.xml  
  inflating: annotations/road219.xml  
  inflating: annotations/road22.xml  
  inflating: annotations/road220.xml  
  inflating: annotations/road221.xml  
  inflating: annotations/road222.xml  
  inflating: annotations/road223.xml  
  inflating: annotations/road224.xml  
  inflating: annotations/road225.xml  
  inflating: annotations/road226.xml  
  inflating: annotations/road227.xml  
  inflating: annotations/road228.xml  
  inflating: annotations/road229.xml  
  inflating: annotations/road23.xml  
  inflating: annotations/road230.xml  
  inflating: annotations/road231.xml  
  inflating: annotations/road232.xml  
  inflating: annotations/road233.xml  
  inflating: annotations/road234.xml  
  inflating: annotations/road235.xml  
  inflating: annotations/road236.xml  
  inflating: annotations/road237.xml  
  inflating: annotations/road238.xml  
  inflating: annotations/road239.xml  
  inflating: annotations/road24.xml  
  inflating: annotations/road240.xml  
  inflating: annotations/road241.xml  
  inflating: annotations/road242.xml  
  inflating: annotations/road243.xml  
  inflating: annotations/road244.xml  
  inflating: annotations/road245.xml  
  inflating: annotations/road246.xml  
  inflating: annotations/road247.xml  
  inflating: annotations/road248.xml  
  inflating: annotations/road249.xml  
  inflating: annotations/road25.xml  
  inflating: annotations/road250.xml  
  inflating: annotations/road251.xml  
  inflating: annotations/road252.xml  
  inflating: annotations/road253.xml  
  inflating: annotations/road254.xml  
  inflating: annotations/road255.xml  
  inflating: annotations/road256.xml  
  inflating: annotations/road257.xml  
  inflating: annotations/road258.xml  
  inflating: annotations/road259.xml  
  inflating: annotations/road26.xml  
  inflating: annotations/road260.xml  
  inflating: annotations/road261.xml  
  inflating: annotations/road262.xml  
  inflating: annotations/road263.xml  
  inflating: annotations/road264.xml  
  inflating: annotations/road265.xml  
  inflating: annotations/road266.xml  
  inflating: annotations/road267.xml  
  inflating: annotations/road268.xml  
  inflating: annotations/road269.xml  
  inflating: annotations/road27.xml  
  inflating: annotations/road270.xml  
  inflating: annotations/road271.xml  
  inflating: annotations/road272.xml  
  inflating: annotations/road273.xml  
  inflating: annotations/road274.xml  
  inflating: annotations/road275.xml  
  inflating: annotations/road276.xml  
  inflating: annotations/road277.xml  
  inflating: annotations/road278.xml  
  inflating: annotations/road279.xml  
  inflating: annotations/road28.xml  
  inflating: annotations/road280.xml  
  inflating: annotations/road281.xml  
  inflating: annotations/road282.xml  
  inflating: annotations/road283.xml  
  inflating: annotations/road284.xml  
  inflating: annotations/road285.xml  
  inflating: annotations/road286.xml  
  inflating: annotations/road287.xml  
  inflating: annotations/road288.xml  
  inflating: annotations/road289.xml  
  inflating: annotations/road29.xml  
  inflating: annotations/road290.xml  
  inflating: annotations/road291.xml  
  inflating: annotations/road292.xml  
  inflating: annotations/road293.xml  
  inflating: annotations/road294.xml  
  inflating: annotations/road295.xml  
  inflating: annotations/road296.xml  
  inflating: annotations/road297.xml  
  inflating: annotations/road298.xml  
  inflating: annotations/road299.xml  
  inflating: annotations/road3.xml   
  inflating: annotations/road30.xml  
  inflating: annotations/road300.xml  
  inflating: annotations/road301.xml  
  inflating: annotations/road302.xml  
  inflating: annotations/road303.xml  
  inflating: annotations/road304.xml  
  inflating: annotations/road305.xml  
  inflating: annotations/road306.xml  
  inflating: annotations/road307.xml  
  inflating: annotations/road308.xml  
  inflating: annotations/road309.xml  
  inflating: annotations/road31.xml  
  inflating: annotations/road310.xml  
  inflating: annotations/road311.xml  
  inflating: annotations/road312.xml  
  inflating: annotations/road313.xml  
  inflating: annotations/road314.xml  
  inflating: annotations/road315.xml  
  inflating: annotations/road316.xml  
  inflating: annotations/road317.xml  
  inflating: annotations/road318.xml  
  inflating: annotations/road319.xml  
  inflating: annotations/road32.xml  
  inflating: annotations/road320.xml  
  inflating: annotations/road321.xml  
  inflating: annotations/road322.xml  
  inflating: annotations/road323.xml  
  inflating: annotations/road324.xml  
  inflating: annotations/road325.xml  
  inflating: annotations/road326.xml  
  inflating: annotations/road327.xml  
  inflating: annotations/road328.xml  
  inflating: annotations/road329.xml  
  inflating: annotations/road33.xml  
  inflating: annotations/road330.xml  
  inflating: annotations/road331.xml  
  inflating: annotations/road332.xml  
  inflating: annotations/road333.xml  
  inflating: annotations/road334.xml  
  inflating: annotations/road335.xml  
  inflating: annotations/road336.xml  
  inflating: annotations/road337.xml  
  inflating: annotations/road338.xml  
  inflating: annotations/road339.xml  
  inflating: annotations/road34.xml  
  inflating: annotations/road340.xml  
  inflating: annotations/road341.xml  
  inflating: annotations/road342.xml  
  inflating: annotations/road343.xml  
  inflating: annotations/road344.xml  
  inflating: annotations/road345.xml  
  inflating: annotations/road346.xml  
  inflating: annotations/road347.xml  
  inflating: annotations/road348.xml  
  inflating: annotations/road349.xml  
  inflating: annotations/road35.xml  
  inflating: annotations/road350.xml  
  inflating: annotations/road351.xml  
  inflating: annotations/road352.xml  
  inflating: annotations/road353.xml  
  inflating: annotations/road354.xml  
  inflating: annotations/road355.xml  
  inflating: annotations/road356.xml  
  inflating: annotations/road357.xml  
  inflating: annotations/road358.xml  
  inflating: annotations/road359.xml  
  inflating: annotations/road36.xml  
  inflating: annotations/road360.xml  
  inflating: annotations/road361.xml  
  inflating: annotations/road362.xml  
  inflating: annotations/road363.xml  
  inflating: annotations/road364.xml  
  inflating: annotations/road365.xml  
  inflating: annotations/road366.xml  
  inflating: annotations/road367.xml  
  inflating: annotations/road368.xml  
  inflating: annotations/road369.xml  
  inflating: annotations/road37.xml  
  inflating: annotations/road370.xml  
  inflating: annotations/road371.xml  
  inflating: annotations/road372.xml  
  inflating: annotations/road373.xml  
  inflating: annotations/road374.xml  
  inflating: annotations/road375.xml  
  inflating: annotations/road376.xml  
  inflating: annotations/road377.xml  
  inflating: annotations/road378.xml  
  inflating: annotations/road379.xml  
  inflating: annotations/road38.xml  
  inflating: annotations/road380.xml  
  inflating: annotations/road381.xml  
  inflating: annotations/road382.xml  
  inflating: annotations/road383.xml  
  inflating: annotations/road384.xml  
  inflating: annotations/road385.xml  
  inflating: annotations/road386.xml  
  inflating: annotations/road387.xml  
  inflating: annotations/road388.xml  
  inflating: annotations/road389.xml  
  inflating: annotations/road39.xml  
  inflating: annotations/road390.xml  
  inflating: annotations/road391.xml  
  inflating: annotations/road392.xml  
  inflating: annotations/road393.xml  
  inflating: annotations/road394.xml  
  inflating: annotations/road395.xml  
  inflating: annotations/road396.xml  
  inflating: annotations/road397.xml  
  inflating: annotations/road398.xml  
  inflating: annotations/road399.xml  
  inflating: annotations/road4.xml   
  inflating: annotations/road40.xml  
  inflating: annotations/road400.xml  
  inflating: annotations/road401.xml  
  inflating: annotations/road402.xml  
  inflating: annotations/road403.xml  
  inflating: annotations/road404.xml  
  inflating: annotations/road405.xml  
  inflating: annotations/road406.xml  
  inflating: annotations/road407.xml  
  inflating: annotations/road408.xml  
  inflating: annotations/road409.xml  
  inflating: annotations/road41.xml  
  inflating: annotations/road410.xml  
  inflating: annotations/road411.xml  
  inflating: annotations/road412.xml  
  inflating: annotations/road413.xml  
  inflating: annotations/road414.xml  
  inflating: annotations/road415.xml  
  inflating: annotations/road416.xml  
  inflating: annotations/road417.xml  
  inflating: annotations/road418.xml  
  inflating: annotations/road419.xml  
  inflating: annotations/road42.xml  
  inflating: annotations/road420.xml  
  inflating: annotations/road421.xml  
  inflating: annotations/road422.xml  
  inflating: annotations/road423.xml  
  inflating: annotations/road424.xml  
  inflating: annotations/road425.xml  
  inflating: annotations/road426.xml  
  inflating: annotations/road427.xml  
  inflating: annotations/road428.xml  
  inflating: annotations/road429.xml  
  inflating: annotations/road43.xml  
  inflating: annotations/road430.xml  
  inflating: annotations/road431.xml  
  inflating: annotations/road432.xml  
  inflating: annotations/road433.xml  
  inflating: annotations/road434.xml  
  inflating: annotations/road435.xml  
  inflating: annotations/road436.xml  
  inflating: annotations/road437.xml  
  inflating: annotations/road438.xml  
  inflating: annotations/road439.xml  
  inflating: annotations/road44.xml  
  inflating: annotations/road440.xml  
  inflating: annotations/road441.xml  
  inflating: annotations/road442.xml  
  inflating: annotations/road443.xml  
  inflating: annotations/road444.xml  
  inflating: annotations/road445.xml  
  inflating: annotations/road446.xml  
  inflating: annotations/road447.xml  
  inflating: annotations/road448.xml  
  inflating: annotations/road449.xml  
  inflating: annotations/road45.xml  
  inflating: annotations/road450.xml  
  inflating: annotations/road451.xml  
  inflating: annotations/road452.xml  
  inflating: annotations/road453.xml  
  inflating: annotations/road454.xml  
  inflating: annotations/road455.xml  
  inflating: annotations/road456.xml  
  inflating: annotations/road457.xml  
  inflating: annotations/road458.xml  
  inflating: annotations/road459.xml  
  inflating: annotations/road46.xml  
  inflating: annotations/road460.xml  
  inflating: annotations/road461.xml  
  inflating: annotations/road462.xml  
  inflating: annotations/road463.xml  
  inflating: annotations/road464.xml  
  inflating: annotations/road465.xml  
  inflating: annotations/road466.xml  
  inflating: annotations/road467.xml  
  inflating: annotations/road468.xml  
  inflating: annotations/road469.xml  
  inflating: annotations/road47.xml  
  inflating: annotations/road470.xml  
  inflating: annotations/road471.xml  
  inflating: annotations/road472.xml  
  inflating: annotations/road473.xml  
  inflating: annotations/road474.xml  
  inflating: annotations/road475.xml  
  inflating: annotations/road476.xml  
  inflating: annotations/road477.xml  
  inflating: annotations/road478.xml  
  inflating: annotations/road479.xml  
  inflating: annotations/road48.xml  
  inflating: annotations/road480.xml  
  inflating: annotations/road481.xml  
  inflating: annotations/road482.xml  
  inflating: annotations/road483.xml  
  inflating: annotations/road484.xml  
  inflating: annotations/road485.xml  
  inflating: annotations/road486.xml  
  inflating: annotations/road487.xml  
  inflating: annotations/road488.xml  
  inflating: annotations/road489.xml  
  inflating: annotations/road49.xml  
  inflating: annotations/road490.xml  
  inflating: annotations/road491.xml  
  inflating: annotations/road492.xml  
  inflating: annotations/road493.xml  
  inflating: annotations/road494.xml  
  inflating: annotations/road495.xml  
  inflating: annotations/road496.xml  
  inflating: annotations/road497.xml  
  inflating: annotations/road498.xml  
  inflating: annotations/road499.xml  
  inflating: annotations/road5.xml   
  inflating: annotations/road50.xml  
  inflating: annotations/road500.xml  
  inflating: annotations/road501.xml  
  inflating: annotations/road502.xml  
  inflating: annotations/road503.xml  
  inflating: annotations/road504.xml  
  inflating: annotations/road505.xml  
  inflating: annotations/road506.xml  
  inflating: annotations/road507.xml  
  inflating: annotations/road508.xml  
  inflating: annotations/road509.xml  
  inflating: annotations/road51.xml  
  inflating: annotations/road510.xml  
  inflating: annotations/road511.xml  
  inflating: annotations/road512.xml  
  inflating: annotations/road513.xml  
  inflating: annotations/road514.xml  
  inflating: annotations/road515.xml  
  inflating: annotations/road516.xml  
  inflating: annotations/road517.xml  
  inflating: annotations/road518.xml  
  inflating: annotations/road519.xml  
  inflating: annotations/road52.xml  
  inflating: annotations/road520.xml  
  inflating: annotations/road521.xml  
  inflating: annotations/road522.xml  
  inflating: annotations/road523.xml  
  inflating: annotations/road524.xml  
  inflating: annotations/road525.xml  
  inflating: annotations/road526.xml  
  inflating: annotations/road527.xml  
  inflating: annotations/road528.xml  
  inflating: annotations/road529.xml  
  inflating: annotations/road53.xml  
  inflating: annotations/road530.xml  
  inflating: annotations/road531.xml  
  inflating: annotations/road532.xml  
  inflating: annotations/road533.xml  
  inflating: annotations/road534.xml  
  inflating: annotations/road535.xml  
  inflating: annotations/road536.xml  
  inflating: annotations/road537.xml  
  inflating: annotations/road538.xml  
  inflating: annotations/road539.xml  
  inflating: annotations/road54.xml  
  inflating: annotations/road540.xml  
  inflating: annotations/road541.xml  
  inflating: annotations/road542.xml  
  inflating: annotations/road543.xml  
  inflating: annotations/road544.xml  
  inflating: annotations/road545.xml  
  inflating: annotations/road546.xml  
  inflating: annotations/road547.xml  
  inflating: annotations/road548.xml  
  inflating: annotations/road549.xml  
  inflating: annotations/road55.xml  
  inflating: annotations/road550.xml  
  inflating: annotations/road551.xml  
  inflating: annotations/road552.xml  
  inflating: annotations/road553.xml  
  inflating: annotations/road554.xml  
  inflating: annotations/road555.xml  
  inflating: annotations/road556.xml  
  inflating: annotations/road557.xml  
  inflating: annotations/road558.xml  
  inflating: annotations/road559.xml  
  inflating: annotations/road56.xml  
  inflating: annotations/road560.xml  
  inflating: annotations/road561.xml  
  inflating: annotations/road562.xml  
  inflating: annotations/road563.xml  
  inflating: annotations/road564.xml  
  inflating: annotations/road565.xml  
  inflating: annotations/road566.xml  
  inflating: annotations/road567.xml  
  inflating: annotations/road568.xml  
  inflating: annotations/road569.xml  
  inflating: annotations/road57.xml  
  inflating: annotations/road570.xml  
  inflating: annotations/road571.xml  
  inflating: annotations/road572.xml  
  inflating: annotations/road573.xml  
  inflating: annotations/road574.xml  
  inflating: annotations/road575.xml  
  inflating: annotations/road576.xml  
  inflating: annotations/road577.xml  
  inflating: annotations/road578.xml  
  inflating: annotations/road579.xml  
  inflating: annotations/road58.xml  
  inflating: annotations/road580.xml  
  inflating: annotations/road581.xml  
  inflating: annotations/road582.xml  
  inflating: annotations/road583.xml  
  inflating: annotations/road584.xml  
  inflating: annotations/road585.xml  
  inflating: annotations/road586.xml  
  inflating: annotations/road587.xml  
  inflating: annotations/road588.xml  
  inflating: annotations/road589.xml  
  inflating: annotations/road59.xml  
  inflating: annotations/road590.xml  
  inflating: annotations/road591.xml  
  inflating: annotations/road592.xml  
  inflating: annotations/road593.xml  
  inflating: annotations/road594.xml  
  inflating: annotations/road595.xml  
  inflating: annotations/road596.xml  
  inflating: annotations/road597.xml  
  inflating: annotations/road598.xml  
  inflating: annotations/road599.xml  
  inflating: annotations/road6.xml   
  inflating: annotations/road60.xml  
  inflating: annotations/road600.xml  
  inflating: annotations/road601.xml  
  inflating: annotations/road602.xml  
  inflating: annotations/road603.xml  
  inflating: annotations/road604.xml  
  inflating: annotations/road605.xml  
  inflating: annotations/road606.xml  
  inflating: annotations/road607.xml  
  inflating: annotations/road608.xml  
  inflating: annotations/road609.xml  
  inflating: annotations/road61.xml  
  inflating: annotations/road610.xml  
  inflating: annotations/road611.xml  
  inflating: annotations/road612.xml  
  inflating: annotations/road613.xml  
  inflating: annotations/road614.xml  
  inflating: annotations/road615.xml  
  inflating: annotations/road616.xml  
  inflating: annotations/road617.xml  
  inflating: annotations/road618.xml  
  inflating: annotations/road619.xml  
  inflating: annotations/road62.xml  
  inflating: annotations/road620.xml  
  inflating: annotations/road621.xml  
  inflating: annotations/road622.xml  
  inflating: annotations/road623.xml  
  inflating: annotations/road624.xml  
  inflating: annotations/road625.xml  
  inflating: annotations/road626.xml  
  inflating: annotations/road627.xml  
  inflating: annotations/road628.xml  
  inflating: annotations/road629.xml  
  inflating: annotations/road63.xml  
  inflating: annotations/road630.xml  
  inflating: annotations/road631.xml  
  inflating: annotations/road632.xml  
  inflating: annotations/road633.xml  
  inflating: annotations/road634.xml  
  inflating: annotations/road635.xml  
  inflating: annotations/road636.xml  
  inflating: annotations/road637.xml  
  inflating: annotations/road638.xml  
  inflating: annotations/road639.xml  
  inflating: annotations/road64.xml  
  inflating: annotations/road640.xml  
  inflating: annotations/road641.xml  
  inflating: annotations/road642.xml  
  inflating: annotations/road643.xml  
  inflating: annotations/road644.xml  
  inflating: annotations/road645.xml  
  inflating: annotations/road646.xml  
  inflating: annotations/road647.xml  
  inflating: annotations/road648.xml  
  inflating: annotations/road649.xml  
  inflating: annotations/road65.xml  
  inflating: annotations/road650.xml  
  inflating: annotations/road651.xml  
  inflating: annotations/road652.xml  
  inflating: annotations/road653.xml  
  inflating: annotations/road654.xml  
  inflating: annotations/road655.xml  
  inflating: annotations/road656.xml  
  inflating: annotations/road657.xml  
  inflating: annotations/road658.xml  
  inflating: annotations/road659.xml  
  inflating: annotations/road66.xml  
  inflating: annotations/road660.xml  
  inflating: annotations/road661.xml  
  inflating: annotations/road662.xml  
  inflating: annotations/road663.xml  
  inflating: annotations/road664.xml  
  inflating: annotations/road665.xml  
  inflating: annotations/road666.xml  
  inflating: annotations/road667.xml  
  inflating: annotations/road668.xml  
  inflating: annotations/road669.xml  
  inflating: annotations/road67.xml  
  inflating: annotations/road670.xml  
  inflating: annotations/road671.xml  
  inflating: annotations/road672.xml  
  inflating: annotations/road673.xml  
  inflating: annotations/road674.xml  
  inflating: annotations/road675.xml  
  inflating: annotations/road676.xml  
  inflating: annotations/road677.xml  
  inflating: annotations/road678.xml  
  inflating: annotations/road679.xml  
  inflating: annotations/road68.xml  
  inflating: annotations/road680.xml  
  inflating: annotations/road681.xml  
  inflating: annotations/road682.xml  
  inflating: annotations/road683.xml  
  inflating: annotations/road684.xml  
  inflating: annotations/road685.xml  
  inflating: annotations/road686.xml  
  inflating: annotations/road687.xml  
  inflating: annotations/road688.xml  
  inflating: annotations/road689.xml  
  inflating: annotations/road69.xml  
  inflating: annotations/road690.xml  
  inflating: annotations/road691.xml  
  inflating: annotations/road692.xml  
  inflating: annotations/road693.xml  
  inflating: annotations/road694.xml  
  inflating: annotations/road695.xml  
  inflating: annotations/road696.xml  
  inflating: annotations/road697.xml  
  inflating: annotations/road698.xml  
  inflating: annotations/road699.xml  
  inflating: annotations/road7.xml   
  inflating: annotations/road70.xml  
  inflating: annotations/road700.xml  
  inflating: annotations/road701.xml  
  inflating: annotations/road702.xml  
  inflating: annotations/road703.xml  
  inflating: annotations/road704.xml  
  inflating: annotations/road705.xml  
  inflating: annotations/road706.xml  
  inflating: annotations/road707.xml  
  inflating: annotations/road708.xml  
  inflating: annotations/road709.xml  
  inflating: annotations/road71.xml  
  inflating: annotations/road710.xml  
  inflating: annotations/road711.xml  
  inflating: annotations/road712.xml  
  inflating: annotations/road713.xml  
  inflating: annotations/road714.xml  
  inflating: annotations/road715.xml  
  inflating: annotations/road716.xml  
  inflating: annotations/road717.xml  
  inflating: annotations/road718.xml  
  inflating: annotations/road719.xml  
  inflating: annotations/road72.xml  
  inflating: annotations/road720.xml  
  inflating: annotations/road721.xml  
  inflating: annotations/road722.xml  
  inflating: annotations/road723.xml  
  inflating: annotations/road724.xml  
  inflating: annotations/road725.xml  
  inflating: annotations/road726.xml  
  inflating: annotations/road727.xml  
  inflating: annotations/road728.xml  
  inflating: annotations/road729.xml  
  inflating: annotations/road73.xml  
  inflating: annotations/road730.xml  
  inflating: annotations/road731.xml  
  inflating: annotations/road732.xml  
  inflating: annotations/road733.xml  
  inflating: annotations/road734.xml  
  inflating: annotations/road735.xml  
  inflating: annotations/road736.xml  
  inflating: annotations/road737.xml  
  inflating: annotations/road738.xml  
  inflating: annotations/road739.xml  
  inflating: annotations/road74.xml  
  inflating: annotations/road740.xml  
  inflating: annotations/road741.xml  
  inflating: annotations/road742.xml  
  inflating: annotations/road743.xml  
  inflating: annotations/road744.xml  
  inflating: annotations/road745.xml  
  inflating: annotations/road746.xml  
  inflating: annotations/road747.xml  
  inflating: annotations/road748.xml  
  inflating: annotations/road749.xml  
  inflating: annotations/road75.xml  
  inflating: annotations/road750.xml  
  inflating: annotations/road751.xml  
  inflating: annotations/road752.xml  
  inflating: annotations/road753.xml  
  inflating: annotations/road754.xml  
  inflating: annotations/road755.xml  
  inflating: annotations/road756.xml  
  inflating: annotations/road757.xml  
  inflating: annotations/road758.xml  
  inflating: annotations/road759.xml  
  inflating: annotations/road76.xml  
  inflating: annotations/road760.xml  
  inflating: annotations/road761.xml  
  inflating: annotations/road762.xml  
  inflating: annotations/road763.xml  
  inflating: annotations/road764.xml  
  inflating: annotations/road765.xml  
  inflating: annotations/road766.xml  
  inflating: annotations/road767.xml  
  inflating: annotations/road768.xml  
  inflating: annotations/road769.xml  
  inflating: annotations/road77.xml  
  inflating: annotations/road770.xml  
  inflating: annotations/road771.xml  
  inflating: annotations/road772.xml  
  inflating: annotations/road773.xml  
  inflating: annotations/road774.xml  
  inflating: annotations/road775.xml  
  inflating: annotations/road776.xml  
  inflating: annotations/road777.xml  
  inflating: annotations/road778.xml  
  inflating: annotations/road779.xml  
  inflating: annotations/road78.xml  
  inflating: annotations/road780.xml  
  inflating: annotations/road781.xml  
  inflating: annotations/road782.xml  
  inflating: annotations/road783.xml  
  inflating: annotations/road784.xml  
  inflating: annotations/road785.xml  
  inflating: annotations/road786.xml  
  inflating: annotations/road787.xml  
  inflating: annotations/road788.xml  
  inflating: annotations/road789.xml  
  inflating: annotations/road79.xml  
  inflating: annotations/road790.xml  
  inflating: annotations/road791.xml  
  inflating: annotations/road792.xml  
  inflating: annotations/road793.xml  
  inflating: annotations/road794.xml  
  inflating: annotations/road795.xml  
  inflating: annotations/road796.xml  
  inflating: annotations/road797.xml  
  inflating: annotations/road798.xml  
  inflating: annotations/road799.xml  
  inflating: annotations/road8.xml   
  inflating: annotations/road80.xml  
  inflating: annotations/road800.xml  
  inflating: annotations/road801.xml  
  inflating: annotations/road802.xml  
  inflating: annotations/road803.xml  
  inflating: annotations/road804.xml  
  inflating: annotations/road805.xml  
  inflating: annotations/road806.xml  
  inflating: annotations/road807.xml  
  inflating: annotations/road808.xml  
  inflating: annotations/road809.xml  
  inflating: annotations/road81.xml  
  inflating: annotations/road810.xml  
  inflating: annotations/road811.xml  
  inflating: annotations/road812.xml  
  inflating: annotations/road813.xml  
  inflating: annotations/road814.xml  
  inflating: annotations/road815.xml  
  inflating: annotations/road816.xml  
  inflating: annotations/road817.xml  
  inflating: annotations/road818.xml  
  inflating: annotations/road819.xml  
  inflating: annotations/road82.xml  
  inflating: annotations/road820.xml  
  inflating: annotations/road821.xml  
  inflating: annotations/road822.xml  
  inflating: annotations/road823.xml  
  inflating: annotations/road824.xml  
  inflating: annotations/road825.xml  
  inflating: annotations/road826.xml  
  inflating: annotations/road827.xml  
  inflating: annotations/road828.xml  
  inflating: annotations/road829.xml  
  inflating: annotations/road83.xml  
  inflating: annotations/road830.xml  
  inflating: annotations/road831.xml  
  inflating: annotations/road832.xml  
  inflating: annotations/road833.xml  
  inflating: annotations/road834.xml  
  inflating: annotations/road835.xml  
  inflating: annotations/road836.xml  
  inflating: annotations/road837.xml  
  inflating: annotations/road838.xml  
  inflating: annotations/road839.xml  
  inflating: annotations/road84.xml  
  inflating: annotations/road840.xml  
  inflating: annotations/road841.xml  
  inflating: annotations/road842.xml  
  inflating: annotations/road843.xml  
  inflating: annotations/road844.xml  
  inflating: annotations/road845.xml  
  inflating: annotations/road846.xml  
  inflating: annotations/road847.xml  
  inflating: annotations/road848.xml  
  inflating: annotations/road849.xml  
  inflating: annotations/road85.xml  
  inflating: annotations/road850.xml  
  inflating: annotations/road851.xml  
  inflating: annotations/road852.xml  
  inflating: annotations/road853.xml  
  inflating: annotations/road854.xml  
  inflating: annotations/road855.xml  
  inflating: annotations/road856.xml  
  inflating: annotations/road857.xml  
  inflating: annotations/road858.xml  
  inflating: annotations/road859.xml  
  inflating: annotations/road86.xml  
  inflating: annotations/road860.xml  
  inflating: annotations/road861.xml  
  inflating: annotations/road862.xml  
  inflating: annotations/road863.xml  
  inflating: annotations/road864.xml  
  inflating: annotations/road865.xml  
  inflating: annotations/road866.xml  
  inflating: annotations/road867.xml  
  inflating: annotations/road868.xml  
  inflating: annotations/road869.xml  
  inflating: annotations/road87.xml  
  inflating: annotations/road870.xml  
  inflating: annotations/road871.xml  
  inflating: annotations/road872.xml  
  inflating: annotations/road873.xml  
  inflating: annotations/road874.xml  
  inflating: annotations/road875.xml  
  inflating: annotations/road876.xml  
  inflating: annotations/road88.xml  
  inflating: annotations/road89.xml  
  inflating: annotations/road9.xml   
  inflating: annotations/road90.xml  
  inflating: annotations/road91.xml  
  inflating: annotations/road92.xml  
  inflating: annotations/road93.xml  
  inflating: annotations/road94.xml  
  inflating: annotations/road95.xml  
  inflating: annotations/road96.xml  
  inflating: annotations/road97.xml  
  inflating: annotations/road98.xml  
  inflating: annotations/road99.xml  
  inflating: images/road0.png        
  inflating: images/road1.png        
  inflating: images/road10.png       
  inflating: images/road100.png      
  inflating: images/road101.png      
  inflating: images/road102.png      
  inflating: images/road103.png      
  inflating: images/road104.png      
  inflating: images/road105.png      
  inflating: images/road106.png      
  inflating: images/road107.png      
  inflating: images/road108.png      
  inflating: images/road109.png      
  inflating: images/road11.png       
  inflating: images/road110.png      
  inflating: images/road111.png      
  inflating: images/road112.png      
  inflating: images/road113.png      
  inflating: images/road114.png      
  inflating: images/road115.png      
  inflating: images/road116.png      
  inflating: images/road117.png      
  inflating: images/road118.png      
  inflating: images/road119.png      
  inflating: images/road12.png       
  inflating: images/road120.png      
  inflating: images/road121.png      
  inflating: images/road122.png      
  inflating: images/road123.png      
  inflating: images/road124.png      
  inflating: images/road125.png      
  inflating: images/road126.png      
  inflating: images/road127.png      
  inflating: images/road128.png      
  inflating: images/road129.png      
  inflating: images/road13.png       
  inflating: images/road130.png      
  inflating: images/road131.png      
  inflating: images/road132.png      
  inflating: images/road133.png      
  inflating: images/road134.png      
  inflating: images/road135.png      
  inflating: images/road136.png      
  inflating: images/road137.png      
  inflating: images/road138.png      
  inflating: images/road139.png      
  inflating: images/road14.png       
  inflating: images/road140.png      
  inflating: images/road141.png      
  inflating: images/road142.png      
  inflating: images/road143.png      
  inflating: images/road144.png      
  inflating: images/road145.png      
  inflating: images/road146.png      
  inflating: images/road147.png      
  inflating: images/road148.png      
  inflating: images/road149.png      
  inflating: images/road15.png       
  inflating: images/road150.png      
  inflating: images/road151.png      
  inflating: images/road152.png      
  inflating: images/road153.png      
  inflating: images/road154.png      
  inflating: images/road155.png      
  inflating: images/road156.png      
  inflating: images/road157.png      
  inflating: images/road158.png      
  inflating: images/road159.png      
  inflating: images/road16.png       
  inflating: images/road160.png      
  inflating: images/road161.png      
  inflating: images/road162.png      
  inflating: images/road163.png      
  inflating: images/road164.png      
  inflating: images/road165.png      
  inflating: images/road166.png      
  inflating: images/road167.png      
  inflating: images/road168.png      
  inflating: images/road169.png      
  inflating: images/road17.png       
  inflating: images/road170.png      
  inflating: images/road171.png      
  inflating: images/road172.png      
  inflating: images/road173.png      
  inflating: images/road174.png      
  inflating: images/road175.png      
  inflating: images/road176.png      
  inflating: images/road177.png      
  inflating: images/road178.png      
  inflating: images/road179.png      
  inflating: images/road18.png       
  inflating: images/road180.png      
  inflating: images/road181.png      
  inflating: images/road182.png      
  inflating: images/road183.png      
  inflating: images/road184.png      
  inflating: images/road185.png      
  inflating: images/road186.png      
  inflating: images/road187.png      
  inflating: images/road188.png      
  inflating: images/road189.png      
  inflating: images/road19.png       
  inflating: images/road190.png      
  inflating: images/road191.png      
  inflating: images/road192.png      
  inflating: images/road193.png      
  inflating: images/road194.png      
  inflating: images/road195.png      
  inflating: images/road196.png      
  inflating: images/road197.png      
  inflating: images/road198.png      
  inflating: images/road199.png      
  inflating: images/road2.png        
  inflating: images/road20.png       
  inflating: images/road200.png      
  inflating: images/road201.png      
  inflating: images/road202.png      
  inflating: images/road203.png      
  inflating: images/road204.png      
  inflating: images/road205.png      
  inflating: images/road206.png      
  inflating: images/road207.png      
  inflating: images/road208.png      
  inflating: images/road209.png      
  inflating: images/road21.png       
  inflating: images/road210.png      
  inflating: images/road211.png      
  inflating: images/road212.png      
  inflating: images/road213.png      
  inflating: images/road214.png      
  inflating: images/road215.png      
  inflating: images/road216.png      
  inflating: images/road217.png      
  inflating: images/road218.png      
  inflating: images/road219.png      
  inflating: images/road22.png       
  inflating: images/road220.png      
  inflating: images/road221.png      
  inflating: images/road222.png      
  inflating: images/road223.png      
  inflating: images/road224.png      
  inflating: images/road225.png      
  inflating: images/road226.png      
  inflating: images/road227.png      
  inflating: images/road228.png      
  inflating: images/road229.png      
  inflating: images/road23.png       
  inflating: images/road230.png      
  inflating: images/road231.png      
  inflating: images/road232.png      
  inflating: images/road233.png      
  inflating: images/road234.png      
  inflating: images/road235.png      
  inflating: images/road236.png      
  inflating: images/road237.png      
  inflating: images/road238.png      
  inflating: images/road239.png      
  inflating: images/road24.png       
  inflating: images/road240.png      
  inflating: images/road241.png      
  inflating: images/road242.png      
  inflating: images/road243.png      
  inflating: images/road244.png      
  inflating: images/road245.png      
  inflating: images/road246.png      
  inflating: images/road247.png      
  inflating: images/road248.png      
  inflating: images/road249.png      
  inflating: images/road25.png       
  inflating: images/road250.png      
  inflating: images/road251.png      
  inflating: images/road252.png      
  inflating: images/road253.png      
  inflating: images/road254.png      
  inflating: images/road255.png      
  inflating: images/road256.png      
  inflating: images/road257.png      
  inflating: images/road258.png      
  inflating: images/road259.png      
  inflating: images/road26.png       
  inflating: images/road260.png      
  inflating: images/road261.png      
  inflating: images/road262.png      
  inflating: images/road263.png      
  inflating: images/road264.png      
  inflating: images/road265.png      
  inflating: images/road266.png      
  inflating: images/road267.png      
  inflating: images/road268.png      
  inflating: images/road269.png      
  inflating: images/road27.png       
  inflating: images/road270.png      
  inflating: images/road271.png      
  inflating: images/road272.png      
  inflating: images/road273.png      
  inflating: images/road274.png      
  inflating: images/road275.png      
  inflating: images/road276.png      
  inflating: images/road277.png      
  inflating: images/road278.png      
  inflating: images/road279.png      
  inflating: images/road28.png       
  inflating: images/road280.png      
  inflating: images/road281.png      
  inflating: images/road282.png      
  inflating: images/road283.png      
  inflating: images/road284.png      
  inflating: images/road285.png      
  inflating: images/road286.png      
  inflating: images/road287.png      
  inflating: images/road288.png      
  inflating: images/road289.png      
  inflating: images/road29.png       
  inflating: images/road290.png      
  inflating: images/road291.png      
  inflating: images/road292.png      
  inflating: images/road293.png      
  inflating: images/road294.png      
  inflating: images/road295.png      
  inflating: images/road296.png      
  inflating: images/road297.png      
  inflating: images/road298.png      
  inflating: images/road299.png      
  inflating: images/road3.png        
  inflating: images/road30.png       
  inflating: images/road300.png      
  inflating: images/road301.png      
  inflating: images/road302.png      
  inflating: images/road303.png      
  inflating: images/road304.png      
  inflating: images/road305.png      
  inflating: images/road306.png      
  inflating: images/road307.png      
  inflating: images/road308.png      
  inflating: images/road309.png      
  inflating: images/road31.png       
  inflating: images/road310.png      
  inflating: images/road311.png      
  inflating: images/road312.png      
  inflating: images/road313.png      
  inflating: images/road314.png      
  inflating: images/road315.png      
  inflating: images/road316.png      
  inflating: images/road317.png      
  inflating: images/road318.png      
  inflating: images/road319.png      
  inflating: images/road32.png       
  inflating: images/road320.png      
  inflating: images/road321.png      
  inflating: images/road322.png      
  inflating: images/road323.png      
  inflating: images/road324.png      
  inflating: images/road325.png      
  inflating: images/road326.png      
  inflating: images/road327.png      
  inflating: images/road328.png      
  inflating: images/road329.png      
  inflating: images/road33.png       
  inflating: images/road330.png      
  inflating: images/road331.png      
  inflating: images/road332.png      
  inflating: images/road333.png      
  inflating: images/road334.png      
  inflating: images/road335.png      
  inflating: images/road336.png      
  inflating: images/road337.png      
  inflating: images/road338.png      
  inflating: images/road339.png      
  inflating: images/road34.png       
  inflating: images/road340.png      
  inflating: images/road341.png      
  inflating: images/road342.png      
  inflating: images/road343.png      
  inflating: images/road344.png      
  inflating: images/road345.png      
  inflating: images/road346.png      
  inflating: images/road347.png      
  inflating: images/road348.png      
  inflating: images/road349.png      
  inflating: images/road35.png       
  inflating: images/road350.png      
  inflating: images/road351.png      
  inflating: images/road352.png      
  inflating: images/road353.png      
  inflating: images/road354.png      
  inflating: images/road355.png      
  inflating: images/road356.png      
  inflating: images/road357.png      
  inflating: images/road358.png      
  inflating: images/road359.png      
  inflating: images/road36.png       
  inflating: images/road360.png      
  inflating: images/road361.png      
  inflating: images/road362.png      
  inflating: images/road363.png      
  inflating: images/road364.png      
  inflating: images/road365.png      
  inflating: images/road366.png      
  inflating: images/road367.png      
  inflating: images/road368.png      
  inflating: images/road369.png      
  inflating: images/road37.png       
  inflating: images/road370.png      
  inflating: images/road371.png      
  inflating: images/road372.png      
  inflating: images/road373.png      
  inflating: images/road374.png      
  inflating: images/road375.png      
  inflating: images/road376.png      
  inflating: images/road377.png      
  inflating: images/road378.png      
  inflating: images/road379.png      
  inflating: images/road38.png       
  inflating: images/road380.png      
  inflating: images/road381.png      
  inflating: images/road382.png      
  inflating: images/road383.png      
  inflating: images/road384.png      
  inflating: images/road385.png      
  inflating: images/road386.png      
  inflating: images/road387.png      
  inflating: images/road388.png      
  inflating: images/road389.png      
  inflating: images/road39.png       
  inflating: images/road390.png      
  inflating: images/road391.png      
  inflating: images/road392.png      
  inflating: images/road393.png      
  inflating: images/road394.png      
  inflating: images/road395.png      
  inflating: images/road396.png      
  inflating: images/road397.png      
  inflating: images/road398.png      
  inflating: images/road399.png      
  inflating: images/road4.png        
  inflating: images/road40.png       
  inflating: images/road400.png      
  inflating: images/road401.png      
  inflating: images/road402.png      
  inflating: images/road403.png      
  inflating: images/road404.png      
  inflating: images/road405.png      
  inflating: images/road406.png      
  inflating: images/road407.png      
  inflating: images/road408.png      
  inflating: images/road409.png      
  inflating: images/road41.png       
  inflating: images/road410.png      
  inflating: images/road411.png      
  inflating: images/road412.png      
  inflating: images/road413.png      
  inflating: images/road414.png      
  inflating: images/road415.png      
  inflating: images/road416.png      
  inflating: images/road417.png      
  inflating: images/road418.png      
  inflating: images/road419.png      
  inflating: images/road42.png       
  inflating: images/road420.png      
  inflating: images/road421.png      
  inflating: images/road422.png      
  inflating: images/road423.png      
  inflating: images/road424.png      
  inflating: images/road425.png      
  inflating: images/road426.png      
  inflating: images/road427.png      
  inflating: images/road428.png      
  inflating: images/road429.png      
  inflating: images/road43.png       
  inflating: images/road430.png      
  inflating: images/road431.png      
  inflating: images/road432.png      
  inflating: images/road433.png      
  inflating: images/road434.png      
  inflating: images/road435.png      
  inflating: images/road436.png      
  inflating: images/road437.png      
  inflating: images/road438.png      
  inflating: images/road439.png      
  inflating: images/road44.png       
  inflating: images/road440.png      
  inflating: images/road441.png      
  inflating: images/road442.png      
  inflating: images/road443.png      
  inflating: images/road444.png      
  inflating: images/road445.png      
  inflating: images/road446.png      
  inflating: images/road447.png      
  inflating: images/road448.png      
  inflating: images/road449.png      
  inflating: images/road45.png       
  inflating: images/road450.png      
  inflating: images/road451.png      
  inflating: images/road452.png      
  inflating: images/road453.png      
  inflating: images/road454.png      
  inflating: images/road455.png      
  inflating: images/road456.png      
  inflating: images/road457.png      
  inflating: images/road458.png      
  inflating: images/road459.png      
  inflating: images/road46.png       
  inflating: images/road460.png      
  inflating: images/road461.png      
  inflating: images/road462.png      
  inflating: images/road463.png      
  inflating: images/road464.png      
  inflating: images/road465.png      
  inflating: images/road466.png      
  inflating: images/road467.png      
  inflating: images/road468.png      
  inflating: images/road469.png      
  inflating: images/road47.png       
  inflating: images/road470.png      
  inflating: images/road471.png      
  inflating: images/road472.png      
  inflating: images/road473.png      
  inflating: images/road474.png      
  inflating: images/road475.png      
  inflating: images/road476.png      
  inflating: images/road477.png      
  inflating: images/road478.png      
  inflating: images/road479.png      
  inflating: images/road48.png       
  inflating: images/road480.png      
  inflating: images/road481.png      
  inflating: images/road482.png      
  inflating: images/road483.png      
  inflating: images/road484.png      
  inflating: images/road485.png      
  inflating: images/road486.png      
  inflating: images/road487.png      
  inflating: images/road488.png      
  inflating: images/road489.png      
  inflating: images/road49.png       
  inflating: images/road490.png      
  inflating: images/road491.png      
  inflating: images/road492.png      
  inflating: images/road493.png      
  inflating: images/road494.png      
  inflating: images/road495.png      
  inflating: images/road496.png      
  inflating: images/road497.png      
  inflating: images/road498.png      
  inflating: images/road499.png      
  inflating: images/road5.png        
  inflating: images/road50.png       
  inflating: images/road500.png      
  inflating: images/road501.png      
  inflating: images/road502.png      
  inflating: images/road503.png      
  inflating: images/road504.png      
  inflating: images/road505.png      
  inflating: images/road506.png      
  inflating: images/road507.png      
  inflating: images/road508.png      
  inflating: images/road509.png      
  inflating: images/road51.png       
  inflating: images/road510.png      
  inflating: images/road511.png      
  inflating: images/road512.png      
  inflating: images/road513.png      
  inflating: images/road514.png      
  inflating: images/road515.png      
  inflating: images/road516.png      
  inflating: images/road517.png      
  inflating: images/road518.png      
  inflating: images/road519.png      
  inflating: images/road52.png       
  inflating: images/road520.png      
  inflating: images/road521.png      
  inflating: images/road522.png      
  inflating: images/road523.png      
  inflating: images/road524.png      
  inflating: images/road525.png      
  inflating: images/road526.png      
  inflating: images/road527.png      
  inflating: images/road528.png      
  inflating: images/road529.png      
  inflating: images/road53.png       
  inflating: images/road530.png      
  inflating: images/road531.png      
  inflating: images/road532.png      
  inflating: images/road533.png      
  inflating: images/road534.png      
  inflating: images/road535.png      
  inflating: images/road536.png      
  inflating: images/road537.png      
  inflating: images/road538.png      
  inflating: images/road539.png      
  inflating: images/road54.png       
  inflating: images/road540.png      
  inflating: images/road541.png      
  inflating: images/road542.png      
  inflating: images/road543.png      
  inflating: images/road544.png      
  inflating: images/road545.png      
  inflating: images/road546.png      
  inflating: images/road547.png      
  inflating: images/road548.png      
  inflating: images/road549.png      
  inflating: images/road55.png       
  inflating: images/road550.png      
  inflating: images/road551.png      
  inflating: images/road552.png      
  inflating: images/road553.png      
  inflating: images/road554.png      
  inflating: images/road555.png      
  inflating: images/road556.png      
  inflating: images/road557.png      
  inflating: images/road558.png      
  inflating: images/road559.png      
  inflating: images/road56.png       
  inflating: images/road560.png      
  inflating: images/road561.png      
  inflating: images/road562.png      
  inflating: images/road563.png      
  inflating: images/road564.png      
  inflating: images/road565.png      
  inflating: images/road566.png      
  inflating: images/road567.png      
  inflating: images/road568.png      
  inflating: images/road569.png      
  inflating: images/road57.png       
  inflating: images/road570.png      
  inflating: images/road571.png      
  inflating: images/road572.png      
  inflating: images/road573.png      
  inflating: images/road574.png      
  inflating: images/road575.png      
  inflating: images/road576.png      
  inflating: images/road577.png      
  inflating: images/road578.png      
  inflating: images/road579.png      
  inflating: images/road58.png       
  inflating: images/road580.png      
  inflating: images/road581.png      
  inflating: images/road582.png      
  inflating: images/road583.png      
  inflating: images/road584.png      
  inflating: images/road585.png      
  inflating: images/road586.png      
  inflating: images/road587.png      
  inflating: images/road588.png      
  inflating: images/road589.png      
  inflating: images/road59.png       
  inflating: images/road590.png      
  inflating: images/road591.png      
  inflating: images/road592.png      
  inflating: images/road593.png      
  inflating: images/road594.png      
  inflating: images/road595.png      
  inflating: images/road596.png      
  inflating: images/road597.png      
  inflating: images/road598.png      
  inflating: images/road599.png      
  inflating: images/road6.png        
  inflating: images/road60.png       
  inflating: images/road600.png      
  inflating: images/road601.png      
  inflating: images/road602.png      
  inflating: images/road603.png      
  inflating: images/road604.png      
  inflating: images/road605.png      
  inflating: images/road606.png      
  inflating: images/road607.png      
  inflating: images/road608.png      
  inflating: images/road609.png      
  inflating: images/road61.png       
  inflating: images/road610.png      
  inflating: images/road611.png      
  inflating: images/road612.png      
  inflating: images/road613.png      
  inflating: images/road614.png      
  inflating: images/road615.png      
  inflating: images/road616.png      
  inflating: images/road617.png      
  inflating: images/road618.png      
  inflating: images/road619.png      
  inflating: images/road62.png       
  inflating: images/road620.png      
  inflating: images/road621.png      
  inflating: images/road622.png      
  inflating: images/road623.png      
  inflating: images/road624.png      
  inflating: images/road625.png      
  inflating: images/road626.png      
  inflating: images/road627.png      
  inflating: images/road628.png      
  inflating: images/road629.png      
  inflating: images/road63.png       
  inflating: images/road630.png      
  inflating: images/road631.png      
  inflating: images/road632.png      
  inflating: images/road633.png      
  inflating: images/road634.png      
  inflating: images/road635.png      
  inflating: images/road636.png      
  inflating: images/road637.png      
  inflating: images/road638.png      
  inflating: images/road639.png      
  inflating: images/road64.png       
  inflating: images/road640.png      
  inflating: images/road641.png      
  inflating: images/road642.png      
  inflating: images/road643.png      
  inflating: images/road644.png      
  inflating: images/road645.png      
  inflating: images/road646.png      
  inflating: images/road647.png      
  inflating: images/road648.png      
  inflating: images/road649.png      
  inflating: images/road65.png       
  inflating: images/road650.png      
  inflating: images/road651.png      
  inflating: images/road652.png      
  inflating: images/road653.png      
  inflating: images/road654.png      
  inflating: images/road655.png      
  inflating: images/road656.png      
  inflating: images/road657.png      
  inflating: images/road658.png      
  inflating: images/road659.png      
  inflating: images/road66.png       
  inflating: images/road660.png      
  inflating: images/road661.png      
  inflating: images/road662.png      
  inflating: images/road663.png      
  inflating: images/road664.png      
  inflating: images/road665.png      
  inflating: images/road666.png      
  inflating: images/road667.png      
  inflating: images/road668.png      
  inflating: images/road669.png      
  inflating: images/road67.png       
  inflating: images/road670.png      
  inflating: images/road671.png      
  inflating: images/road672.png      
  inflating: images/road673.png      
  inflating: images/road674.png      
  inflating: images/road675.png      
  inflating: images/road676.png      
  inflating: images/road677.png      
  inflating: images/road678.png      
  inflating: images/road679.png      
  inflating: images/road68.png       
  inflating: images/road680.png      
  inflating: images/road681.png      
  inflating: images/road682.png      
  inflating: images/road683.png      
  inflating: images/road684.png      
  inflating: images/road685.png      
  inflating: images/road686.png      
  inflating: images/road687.png      
  inflating: images/road688.png      
  inflating: images/road689.png      
  inflating: images/road69.png       
  inflating: images/road690.png      
  inflating: images/road691.png      
  inflating: images/road692.png      
  inflating: images/road693.png      
  inflating: images/road694.png      
  inflating: images/road695.png      
  inflating: images/road696.png      
  inflating: images/road697.png      
  inflating: images/road698.png      
  inflating: images/road699.png      
  inflating: images/road7.png        
  inflating: images/road70.png       
  inflating: images/road700.png      
  inflating: images/road701.png      
  inflating: images/road702.png      
  inflating: images/road703.png      
  inflating: images/road704.png      
  inflating: images/road705.png      
  inflating: images/road706.png      
  inflating: images/road707.png      
  inflating: images/road708.png      
  inflating: images/road709.png      
  inflating: images/road71.png       
  inflating: images/road710.png      
  inflating: images/road711.png      
  inflating: images/road712.png      
  inflating: images/road713.png      
  inflating: images/road714.png      
  inflating: images/road715.png      
  inflating: images/road716.png      
  inflating: images/road717.png      
  inflating: images/road718.png      
  inflating: images/road719.png      
  inflating: images/road72.png       
  inflating: images/road720.png      
  inflating: images/road721.png      
  inflating: images/road722.png      
  inflating: images/road723.png      
  inflating: images/road724.png      
  inflating: images/road725.png      
  inflating: images/road726.png      
  inflating: images/road727.png      
  inflating: images/road728.png      
  inflating: images/road729.png      
  inflating: images/road73.png       
  inflating: images/road730.png      
  inflating: images/road731.png      
  inflating: images/road732.png      
  inflating: images/road733.png      
  inflating: images/road734.png      
  inflating: images/road735.png      
  inflating: images/road736.png      
  inflating: images/road737.png      
  inflating: images/road738.png      
  inflating: images/road739.png      
  inflating: images/road74.png       
  inflating: images/road740.png      
  inflating: images/road741.png      
  inflating: images/road742.png      
  inflating: images/road743.png      
  inflating: images/road744.png      
  inflating: images/road745.png      
  inflating: images/road746.png      
  inflating: images/road747.png      
  inflating: images/road748.png      
  inflating: images/road749.png      
  inflating: images/road75.png       
  inflating: images/road750.png      
  inflating: images/road751.png      
  inflating: images/road752.png      
  inflating: images/road753.png      
  inflating: images/road754.png      
  inflating: images/road755.png      
  inflating: images/road756.png      
  inflating: images/road757.png      
  inflating: images/road758.png      
  inflating: images/road759.png      
  inflating: images/road76.png       
  inflating: images/road760.png      
  inflating: images/road761.png      
  inflating: images/road762.png      
  inflating: images/road763.png      
  inflating: images/road764.png      
  inflating: images/road765.png      
  inflating: images/road766.png      
  inflating: images/road767.png      
  inflating: images/road768.png      
  inflating: images/road769.png      
  inflating: images/road77.png       
  inflating: images/road770.png      
  inflating: images/road771.png      
  inflating: images/road772.png      
  inflating: images/road773.png      
  inflating: images/road774.png      
  inflating: images/road775.png      
  inflating: images/road776.png      
  inflating: images/road777.png      
  inflating: images/road778.png      
  inflating: images/road779.png      
  inflating: images/road78.png       
  inflating: images/road780.png      
  inflating: images/road781.png      
  inflating: images/road782.png      
  inflating: images/road783.png      
  inflating: images/road784.png      
  inflating: images/road785.png      
  inflating: images/road786.png      
  inflating: images/road787.png      
  inflating: images/road788.png      
  inflating: images/road789.png      
  inflating: images/road79.png       
  inflating: images/road790.png      
  inflating: images/road791.png      
  inflating: images/road792.png      
  inflating: images/road793.png      
  inflating: images/road794.png      
  inflating: images/road795.png      
  inflating: images/road796.png      
  inflating: images/road797.png      
  inflating: images/road798.png      
  inflating: images/road799.png      
  inflating: images/road8.png        
  inflating: images/road80.png       
  inflating: images/road800.png      
  inflating: images/road801.png      
  inflating: images/road802.png      
  inflating: images/road803.png      
  inflating: images/road804.png      
  inflating: images/road805.png      
  inflating: images/road806.png      
  inflating: images/road807.png      
  inflating: images/road808.png      
  inflating: images/road809.png      
  inflating: images/road81.png       
  inflating: images/road810.png      
  inflating: images/road811.png      
  inflating: images/road812.png      
  inflating: images/road813.png      
  inflating: images/road814.png      
  inflating: images/road815.png      
  inflating: images/road816.png      
  inflating: images/road817.png      
  inflating: images/road818.png      
  inflating: images/road819.png      
  inflating: images/road82.png       
  inflating: images/road820.png      
  inflating: images/road821.png      
  inflating: images/road822.png      
  inflating: images/road823.png      
  inflating: images/road824.png      
  inflating: images/road825.png      
  inflating: images/road826.png      
  inflating: images/road827.png      
  inflating: images/road828.png      
  inflating: images/road829.png      
  inflating: images/road83.png       
  inflating: images/road830.png      
  inflating: images/road831.png      
  inflating: images/road832.png      
  inflating: images/road833.png      
  inflating: images/road834.png      
  inflating: images/road835.png      
  inflating: images/road836.png      
  inflating: images/road837.png      
  inflating: images/road838.png      
  inflating: images/road839.png      
  inflating: images/road84.png       
  inflating: images/road840.png      
  inflating: images/road841.png      
  inflating: images/road842.png      
  inflating: images/road843.png      
  inflating: images/road844.png      
  inflating: images/road845.png      
  inflating: images/road846.png      
  inflating: images/road847.png      
  inflating: images/road848.png      
  inflating: images/road849.png      
  inflating: images/road85.png       
  inflating: images/road850.png      
  inflating: images/road851.png      
  inflating: images/road852.png      
  inflating: images/road853.png      
  inflating: images/road854.png      
  inflating: images/road855.png      
  inflating: images/road856.png      
  inflating: images/road857.png      
  inflating: images/road858.png      
  inflating: images/road859.png      
  inflating: images/road86.png       
  inflating: images/road860.png      
  inflating: images/road861.png      
  inflating: images/road862.png      
  inflating: images/road863.png      
  inflating: images/road864.png      
  inflating: images/road865.png      
  inflating: images/road866.png      
  inflating: images/road867.png      
  inflating: images/road868.png      
  inflating: images/road869.png      
  inflating: images/road87.png       
  inflating: images/road870.png      
  inflating: images/road871.png      
  inflating: images/road872.png      
  inflating: images/road873.png      
  inflating: images/road874.png      
  inflating: images/road875.png      
  inflating: images/road876.png      
  inflating: images/road88.png       
  inflating: images/road89.png       
  inflating: images/road9.png        
  inflating: images/road90.png       
  inflating: images/road91.png       
  inflating: images/road92.png       
  inflating: images/road93.png       
  inflating: images/road94.png       
  inflating: images/road95.png       
  inflating: images/road96.png       
  inflating: images/road97.png       
  inflating: images/road98.png       
  inflating: images/road99.png       

Road Sign Detection using CNN¶

Introduction¶

This code implements a basic road sign detection system using a Convolutional Neural Network (CNN). It serves as a hands-on introduction to using CNNs for image classification tasks, specifically focusing on detecting and classifying road signs.

The code includes steps for setting up the environment, selecting test images, parsing annotations from XML files, and preparing data for model training. A simple CNN model is built using TensorFlow and Keras, which is then trained and evaluated for accuracy. Finally, the trained model is used to make predictions on test images, visualizing the results by drawing bounding boxes and labels.

In [ ]:
import os
import numpy as np
import cv2
import xml.etree.ElementTree as ET
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
import tensorflow as tf
from tensorflow.keras import layers, models
import random
import shutil

annotations_path = '/content/annotations/'
images_path = '/content/images/'
test_images_path = '/content/test_images/'
output_images_path = '/content/output_images_cnn/'
fixed_size = (128, 128)


if os.path.exists(test_images_path):
    shutil.rmtree(test_images_path)
if os.path.exists(output_images_path):
    shutil.rmtree(output_images_path)


os.makedirs(test_images_path)
os.makedirs(output_images_path)

all_images = [f for f in os.listdir(images_path) if f.endswith(('.png', '.jpg', '.jpeg'))]
num_images_to_select = 5
selected_images = random.sample(all_images, num_images_to_select)
for image_file in selected_images:
    shutil.copy(os.path.join(images_path, image_file), os.path.join(test_images_path, image_file))
print(f"Copied to /content/test_images/: {selected_images}")

def parse_xml(xml_file):
    tree = ET.parse(xml_file)
    root = tree.getroot()
    filename = root.find('filename').text
    objects = []

    for obj in root.findall('object'):
        class_name = obj.find('name').text
        bbox = obj.find('bndbox')
        xmin = int(bbox.find('xmin').text)
        ymin = int(bbox.find('ymin').text)
        xmax = int(bbox.find('xmax').text)
        ymax = int(bbox.find('ymax').text)
        objects.append({'class': class_name, 'bbox': [xmin, ymin, xmax, ymax]})

    return filename, objects

annotations = []
labels_data = []
bboxes = {}

for xml_file in os.listdir(annotations_path):
    if xml_file.endswith('.xml'):
        filename, objects = parse_xml(os.path.join(annotations_path, xml_file))
        annotations.append({'filename': filename, 'objects': objects})
        if objects:
            labels_data.append(objects[0]['class'])
            bboxes[filename] = objects[0]['bbox']
image_data = []
for annotation in annotations:
    image_path = os.path.join(images_path, annotation['filename'])
    img = cv2.imread(image_path)
    if img is not None:
        img_resized = cv2.resize(img, fixed_size)
        image_data.append(img_resized)

image_data = np.array(image_data)
label_encoder = LabelEncoder()
encoded_labels = label_encoder.fit_transform(labels_data)

X_train, X_test, y_train, y_test = train_test_split(image_data, encoded_labels, test_size=0.2, random_state=42)

num_classes = len(label_encoder.classes_)
model = models.Sequential([
    layers.Input(shape=(fixed_size[0], fixed_size[1], 3)),
    layers.Conv2D(32, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(128, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Flatten(),
    layers.Dense(128, activation='relu'),
    layers.Dense(num_classes, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
X_train = X_train / 255.0
model.fit(X_train, y_train, epochs=30, validation_split=0.2)
X_test = X_test / 255.0
test_loss, test_acc = model.evaluate(X_test, y_test)
print(f"Test accuracy: {test_acc}")

def load_and_preprocess_image(image_path):
    img = cv2.imread(image_path)
    if img is None:
        print(f"Error: Unable to load image at {image_path}")
        return None
    img_resized = cv2.resize(img, fixed_size)
    img_normalized = img_resized / 255.0
    img_expanded = np.expand_dims(img_normalized, axis=0)
    return img, img_expanded

for test_image in os.listdir(test_images_path):
    test_image_path = os.path.join(test_images_path, test_image)
    original_img, image_for_prediction = load_and_preprocess_image(test_image_path)

    if image_for_prediction is not None:
        predictions = model.predict(image_for_prediction)
        predicted_class = np.argmax(predictions, axis=1)
        confidence_score = np.max(predictions)
        predicted_label = label_encoder.inverse_transform(predicted_class)[0]

        if "stop" in predicted_label.lower():
            label_text = f"Stop Sign "
        elif "crosswalk" in predicted_label.lower():
            label_text = f"Cross Walk "
        elif "speed limit" in predicted_label.lower():
            speed_limit_number = predicted_label.split()[-1]
            label_text = f"Speed Limit: {speed_limit_number} "
        else:
            label_text = f"{predicted_label} "

        bbox = bboxes.get(test_image, [10, 10, original_img.shape[1] - 10, original_img.shape[0] - 10])
        xmin, ymin, xmax, ymax = bbox

        cv2.rectangle(original_img, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)
        cv2.putText(original_img, label_text, (xmin, ymin - 10),
                    cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2)

        output_path = os.path.join(output_images_path, f"predicted_{test_image}")
        cv2.imwrite(output_path, original_img)
        print(f"Saved annotated image to {output_path}")

model.save('road_sign_detector.keras')
Copied to /content/test_images/: ['road813.png', 'road688.png', 'road287.png', 'road198.png', 'road252.png']
Epoch 1/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 12s 319ms/step - accuracy: 0.6081 - loss: 1.1313 - val_accuracy: 0.7447 - val_loss: 0.7913
Epoch 2/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 10s 27ms/step - accuracy: 0.7745 - loss: 0.7786 - val_accuracy: 0.7660 - val_loss: 0.7672
Epoch 3/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - accuracy: 0.7253 - loss: 0.8218 - val_accuracy: 0.7730 - val_loss: 0.7482
Epoch 4/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - accuracy: 0.7962 - loss: 0.6685 - val_accuracy: 0.7730 - val_loss: 0.6625
Epoch 5/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - accuracy: 0.8226 - loss: 0.5681 - val_accuracy: 0.7943 - val_loss: 0.7136
Epoch 6/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - accuracy: 0.8495 - loss: 0.4911 - val_accuracy: 0.8085 - val_loss: 0.6233
Epoch 7/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 1s 20ms/step - accuracy: 0.8787 - loss: 0.4173 - val_accuracy: 0.8085 - val_loss: 0.7424
Epoch 8/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 1s 20ms/step - accuracy: 0.9035 - loss: 0.3314 - val_accuracy: 0.7518 - val_loss: 0.8773
Epoch 9/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - accuracy: 0.8670 - loss: 0.3900 - val_accuracy: 0.8156 - val_loss: 0.8576
Epoch 10/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - accuracy: 0.9272 - loss: 0.2493 - val_accuracy: 0.8014 - val_loss: 0.7617
Epoch 11/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - accuracy: 0.9369 - loss: 0.1938 - val_accuracy: 0.8227 - val_loss: 0.9627
Epoch 12/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - accuracy: 0.9240 - loss: 0.2033 - val_accuracy: 0.7305 - val_loss: 1.1577
Epoch 13/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - accuracy: 0.9518 - loss: 0.1759 - val_accuracy: 0.7872 - val_loss: 1.1369
Epoch 14/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - accuracy: 0.9688 - loss: 0.1016 - val_accuracy: 0.7660 - val_loss: 1.4488
Epoch 15/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - accuracy: 0.9799 - loss: 0.0600 - val_accuracy: 0.8156 - val_loss: 1.3536
Epoch 16/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - accuracy: 0.9793 - loss: 0.0667 - val_accuracy: 0.8014 - val_loss: 1.5073
Epoch 17/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 26ms/step - accuracy: 0.9928 - loss: 0.0346 - val_accuracy: 0.8156 - val_loss: 1.5058
Epoch 18/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - accuracy: 0.9994 - loss: 0.0215 - val_accuracy: 0.8014 - val_loss: 1.8062
Epoch 19/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - accuracy: 0.9896 - loss: 0.0207 - val_accuracy: 0.8014 - val_loss: 1.5257
Epoch 20/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 23ms/step - accuracy: 0.9556 - loss: 0.2275 - val_accuracy: 0.7801 - val_loss: 1.0778
Epoch 21/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 26ms/step - accuracy: 0.9714 - loss: 0.1123 - val_accuracy: 0.7518 - val_loss: 1.7266
Epoch 22/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - accuracy: 0.9781 - loss: 0.1224 - val_accuracy: 0.7730 - val_loss: 1.2824
Epoch 23/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - accuracy: 0.9953 - loss: 0.0310 - val_accuracy: 0.7872 - val_loss: 1.4416
Epoch 24/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - accuracy: 1.0000 - loss: 0.0098 - val_accuracy: 0.8085 - val_loss: 1.6513
Epoch 25/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - accuracy: 1.0000 - loss: 0.0032 - val_accuracy: 0.7943 - val_loss: 1.6469
Epoch 26/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 1s 20ms/step - accuracy: 1.0000 - loss: 0.0023 - val_accuracy: 0.8085 - val_loss: 1.7100
Epoch 27/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - accuracy: 1.0000 - loss: 0.0016 - val_accuracy: 0.8014 - val_loss: 1.7879
Epoch 28/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - accuracy: 1.0000 - loss: 0.0012 - val_accuracy: 0.8014 - val_loss: 1.7927
Epoch 29/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - accuracy: 1.0000 - loss: 6.4740e-04 - val_accuracy: 0.7943 - val_loss: 1.8412
Epoch 30/30
18/18 ━━━━━━━━━━━━━━━━━━━━ 1s 20ms/step - accuracy: 1.0000 - loss: 5.9274e-04 - val_accuracy: 0.7943 - val_loss: 1.8697
6/6 ━━━━━━━━━━━━━━━━━━━━ 1s 184ms/step - accuracy: 0.8427 - loss: 1.5153
Test accuracy: 0.8238636255264282
1/1 ━━━━━━━━━━━━━━━━━━━━ 1s 554ms/step
Saved annotated image to /content/output_images_cnn/predicted_road287.png
1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step
Saved annotated image to /content/output_images_cnn/predicted_road252.png
1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step
Saved annotated image to /content/output_images_cnn/predicted_road813.png
1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step
Saved annotated image to /content/output_images_cnn/predicted_road688.png
1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step
Saved annotated image to /content/output_images_cnn/predicted_road198.png
In [ ]:
import matplotlib.pyplot as plt
output_images_path = '/content/output_images_cnn/'
%matplotlib inline

def display_output_images(output_images_path):
    image_files = [f for f in os.listdir(output_images_path) if f.endswith(('.png', '.jpg', '.jpeg'))]

    for image_file in image_files:
        img = cv2.imread(os.path.join(output_images_path, image_file))
        if img is not None:
            img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
            plt.imshow(img_rgb)
            plt.title(image_file)
            plt.axis('off')
            plt.show()
        else:
            print(f"Error loading {image_file}")

display_output_images(output_images_path)

Road Sign Detection using YOLO¶

Introduction¶

This code implements a road sign detection system using the YOLO (You Only Look Once) algorithm, known for its efficiency in real-time object detection. It prepares the environment by cloning the YOLOv5 repository and installing necessary dependencies. The code manages directories for training, validation, and test images, and converts bounding box annotations from XML format to YOLO format.

A custom YAML configuration file is generated to specify paths for training and validation data, the number of classes, and class names. The YOLOv5 model is then trained on the prepared dataset. After training, the code runs detection on test images using the trained model, saving the detection results. It also visualizes the detected road signs by drawing bounding boxes and labels on the images.

Overall, this implementation serves as a practical guide to utilizing YOLO for road sign detection, showcasing its capability for efficient real-time detection tasks.

In [ ]:
import locale
import os
import random
import shutil
import cv2
import numpy as np
import xml.etree.ElementTree as ET
from sklearn.preprocessing import LabelEncoder
import yaml
import sys
import glob


def getpreferredencoding(do_setlocale=True):
    return "UTF-8"
locale.getpreferredencoding = getpreferredencoding

if not os.path.exists('yolov5'):
    !git clone https://github.com/ultralytics/yolov5

%cd yolov5
!pip install -r requirements.txt


sys.path.append('/content/yolov5')


from yolov5.train import run as train_run
from yolov5.detect import run as detect_run


annotations_path = '/content/annotations/'
images_path = '/content/images/'
train_images_path = '/content/images/train/'
val_images_path = '/content/images/val/'
train_labels_path = '/content/labels/train/'
val_labels_path = '/content/labels/val/'
test_images_path = '/content/test_images/'
output_labeled_image = '/content/output_images_yolo/'


for path in [train_images_path, val_images_path, test_images_path, output_labeled_image, train_labels_path, val_labels_path]:
    if os.path.exists(path):
        shutil.rmtree(path)
    os.makedirs(path)


all_images = [f for f in os.listdir(images_path) if f.endswith(('.png', '.jpg', '.jpeg'))]
random.shuffle(all_images)
train_split = int(0.8 * len(all_images))
train_images = all_images[:train_split]
val_images = all_images[train_split:]


for image_file in train_images:
    shutil.copy(os.path.join(images_path, image_file), os.path.join(train_images_path, image_file))
for image_file in val_images:
    shutil.copy(os.path.join(images_path, image_file), os.path.join(val_images_path, image_file))
print("Assigned images to train and validation sets")

test_images_sample = random.sample(val_images, min(10, len(val_images)))

for image_file in test_images_sample:
    shutil.copy(os.path.join(val_images_path, image_file), os.path.join(test_images_path, image_file))

print(f"Randomly selected {len(test_images_sample)} images for testing.")


def convert_bbox_to_yolo(size, box):
    dw = 1.0 / size[0]
    dh = 1.0 / size[1]
    x_center = (box[0] + box[2]) / 2.0 - 1
    y_center = (box[1] + box[3]) / 2.0 - 1
    width = box[2] - box[0]
    height = box[3] - box[1]
    return x_center * dw, y_center * dh, width * dw, height * dh

def parse_and_convert_xml(xml_file, output_dir, label_encoder):
    tree = ET.parse(xml_file)
    root = tree.getroot()
    size = root.find("size")
    width, height = int(size.find("width").text), int(size.find("height").text)
    output_text = []
    for obj in root.findall("object"):
        class_name = obj.find("name").text

        if class_name in target_classes:
            class_id = label_encoder.transform([class_name])[0]
            bbox = obj.find("bndbox")
            xmin = int(bbox.find("xmin").text)
            ymin = int(bbox.find("ymin").text)
            xmax = int(bbox.find("xmax").text)
            ymax = int(bbox.find("ymax").text)
            yolo_box = convert_bbox_to_yolo((width, height), [xmin, ymin, xmax, ymax])
            output_text.append(f"{class_id} " + " ".join(map(str, yolo_box)))

    base_name = os.path.splitext(os.path.basename(xml_file))[0]
    output_path = os.path.join(output_dir, f"{base_name}.txt")
    with open(output_path, "w") as f:
        f.write("\n".join(output_text))

annotations = []
labels_data = []
for xml_file in os.listdir(annotations_path):
    if xml_file.endswith('.xml'):
        tree = ET.parse(os.path.join(annotations_path, xml_file))
        root = tree.getroot()
        for obj in root.findall("object"):
            labels_data.append(obj.find("name").text)


target_classes = ['stop', 'crosswalk', 'speedlimit', 'trafficlight']

filtered_labels_data = [name for name in labels_data if name in target_classes]

unique_classes = set(labels_data)
print("Unique class names found in dataset:", unique_classes)

if not filtered_labels_data:
    raise ValueError("No target classes found in the dataset. Please check the class names.")

label_encoder = LabelEncoder()
label_encoder.fit(filtered_labels_data)
class_names = list(label_encoder.classes_)
print("Available class names:", class_names)


for xml_file in os.listdir(annotations_path):
    if xml_file.endswith('.xml'):
        if os.path.splitext(xml_file)[0] in [os.path.splitext(img)[0] for img in train_images]:
            parse_and_convert_xml(os.path.join(annotations_path, xml_file), train_labels_path, label_encoder)
        else:
            parse_and_convert_xml(os.path.join(annotations_path, xml_file), val_labels_path, label_encoder)


custom_yaml = {
    'train': str(train_images_path),
    'val': str(val_images_path),
    'nc': int(len(class_names)),
    'names': [str(name) for name in class_names]
}

with open('/content/custom.yaml', 'w') as f:
    yaml.dump(custom_yaml, f, default_flow_style=False)
print("Generated custom.yaml")


train_run(data='/content/custom.yaml',
          imgsz=640,
          batch_size=16,
          epochs=10,
          weights='yolov5s.pt')

weights_dir = max(glob.glob('runs/train/exp*/weights'), key=os.path.getmtime) if glob.glob('runs/train/exp*/weights') else None  # Check if the list is empty
best_weights_path = os.path.join(weights_dir, 'best.pt') if weights_dir else 'yolov5s.pt'  # Use default weights if training failed


if not os.path.exists(output_labeled_image):
    os.makedirs(output_labeled_image)


def display_yolo_detection(image_path, txt_path):
    img = cv2.imread(image_path)
    height, width, _ = img.shape
    with open(txt_path, 'r') as f:
        detections = f.readlines()
        for detection in detections:
            data = detection.strip().split()
            class_id = data[0]
            bbox = list(map(float, data[1:]))
            xmin = int((bbox[0] - bbox[2] / 2) * width)
            ymin = int((bbox[1] - bbox[3] / 2) * height)
            xmax = int((bbox[0] + bbox[2] / 2) * width)
            ymax = int((bbox[1] + bbox[3] / 2) * height)
            label_text = class_names[int(class_id)]
            cv2.rectangle(img, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)
            cv2.putText(img, label_text, (xmin, ymin - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2)

    output_img_path = os.path.join(output_labeled_image, f"yolo_{os.path.basename(image_path)}")
    cv2.imwrite(output_img_path, img)
    print(f"Labeled image saved: {output_img_path}")

if len(os.listdir(test_images_path)) == 0:
    raise AssertionError(f"No images found in {test_images_path}. Make sure the directory is populated with images.")


if all(cls in class_names for cls in target_classes):
    detect_run(source=test_images_path,
               weights=best_weights_path,
               imgsz=(640, 640),
               conf_thres=0.25,
               iou_thres=0.45,
               save_txt=True,
               save_conf=True,
               project=output_labeled_image,
               name='detections',
               exist_ok=True)
else:
    print("Not all target classes were found in the trained model.")
wandb: W&B disabled due to login timeout.
Assigned images to train and validation sets
Randomly selected 10 images for testing.
Unique class names found in dataset: {'crosswalk', 'speedlimit', 'trafficlight', 'stop'}
Available class names: ['crosswalk', 'speedlimit', 'stop', 'trafficlight']
train: weights=yolov5s.pt, cfg=, data=/content/custom.yaml, hyp=data/hyps/hyp.scratch-low.yaml, epochs=10, batch_size=16, imgsz=640, rect=False, resume=False, nosave=False, noval=False, noautoanchor=False, noplots=False, evolve=None, evolve_population=data/hyps, resume_evolve=None, bucket=, cache=None, image_weights=False, device=, multi_scale=False, single_cls=False, optimizer=SGD, sync_bn=False, workers=8, project=runs/train, name=exp, exist_ok=False, quad=False, cos_lr=False, label_smoothing=0.0, patience=100, freeze=[0], save_period=-1, seed=0, local_rank=-1, entity=None, upload_dataset=False, bbox_interval=-1, artifact_alias=latest, ndjson_console=False, ndjson_file=False
Generated custom.yaml
github: up to date with https://github.com/ultralytics/yolov5 ✅
YOLOv5 🚀 v7.0-378-g2f74455a Python-3.10.12 torch-2.5.0+cu121 CUDA:0 (Tesla T4, 15102MiB)

hyperparameters: lr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=0.05, cls=0.5, cls_pw=1.0, obj=1.0, obj_pw=1.0, iou_t=0.2, anchor_t=4.0, fl_gamma=0.0, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, mosaic=1.0, mixup=0.0, copy_paste=0.0
Comet: run 'pip install comet_ml' to automatically track and visualize YOLOv5 🚀 runs in Comet
TensorBoard: Start with 'tensorboard --logdir runs/train', view at http://localhost:6006/
Downloading https://github.com/ultralytics/assets/releases/download/v0.0.0/Arial.ttf to /root/.config/Ultralytics/Arial.ttf...
100%|██████████| 755k/755k [00:00<00:00, 84.6MB/s]
Downloading https://github.com/ultralytics/yolov5/releases/download/v7.0/yolov5s.pt to yolov5s.pt...
100%|██████████| 14.1M/14.1M [00:00<00:00, 430MB/s]

Overriding model.yaml nc=80 with nc=4

                 from  n    params  module                                  arguments                     
  0                -1  1      3520  models.common.Conv                      [3, 32, 6, 2, 2]              
  1                -1  1     18560  models.common.Conv                      [32, 64, 3, 2]                
  2                -1  1     18816  models.common.C3                        [64, 64, 1]                   
  3                -1  1     73984  models.common.Conv                      [64, 128, 3, 2]               
  4                -1  2    115712  models.common.C3                        [128, 128, 2]                 
  5                -1  1    295424  models.common.Conv                      [128, 256, 3, 2]              
  6                -1  3    625152  models.common.C3                        [256, 256, 3]                 
  7                -1  1   1180672  models.common.Conv                      [256, 512, 3, 2]              
  8                -1  1   1182720  models.common.C3                        [512, 512, 1]                 
  9                -1  1    656896  models.common.SPPF                      [512, 512, 5]                 
 10                -1  1    131584  models.common.Conv                      [512, 256, 1, 1]              
 11                -1  1         0  torch.nn.modules.upsampling.Upsample    [None, 2, 'nearest']          
 12           [-1, 6]  1         0  models.common.Concat                    [1]                           
 13                -1  1    361984  models.common.C3                        [512, 256, 1, False]          
 14                -1  1     33024  models.common.Conv                      [256, 128, 1, 1]              
 15                -1  1         0  torch.nn.modules.upsampling.Upsample    [None, 2, 'nearest']          
 16           [-1, 4]  1         0  models.common.Concat                    [1]                           
 17                -1  1     90880  models.common.C3                        [256, 128, 1, False]          
 18                -1  1    147712  models.common.Conv                      [128, 128, 3, 2]              
 19          [-1, 14]  1         0  models.common.Concat                    [1]                           
 20                -1  1    296448  models.common.C3                        [256, 256, 1, False]          
 21                -1  1    590336  models.common.Conv                      [256, 256, 3, 2]              
 22          [-1, 10]  1         0  models.common.Concat                    [1]                           
 23                -1  1   1182720  models.common.C3                        [512, 512, 1, False]          
 24      [17, 20, 23]  1     24273  models.yolo.Detect                      [4, [[10, 13, 16, 30, 33, 23], [30, 61, 62, 45, 59, 119], [116, 90, 156, 198, 373, 326]], [128, 256, 512]]
Model summary: 214 layers, 7030417 parameters, 7030417 gradients, 16.0 GFLOPs

Transferred 343/349 items from yolov5s.pt
/content/yolov5/models/common.py:892: FutureWarning: `torch.cuda.amp.autocast(args...)` is deprecated. Please use `torch.amp.autocast('cuda', args...)` instead.
  with amp.autocast(autocast):
/content/yolov5/models/common.py:892: FutureWarning: `torch.cuda.amp.autocast(args...)` is deprecated. Please use `torch.amp.autocast('cuda', args...)` instead.
  with amp.autocast(autocast):
AMP: checks passed ✅
optimizer: SGD(lr=0.01) with parameter groups 57 weight(decay=0.0), 60 weight(decay=0.0005), 60 bias
albumentations: Blur(p=0.01, blur_limit=(3, 7)), MedianBlur(p=0.01, blur_limit=(3, 7)), ToGray(p=0.01, num_output_channels=3, method='weighted_average'), CLAHE(p=0.01, clip_limit=(1, 4.0), tile_grid_size=(8, 8))
train: Scanning /content/labels/train... 701 images, 0 backgrounds, 0 corrupt: 100%|██████████| 701/701 [00:00<00:00, 789.43it/s]
train: New cache created: /content/labels/train.cache
val: Scanning /content/labels/val... 176 images, 0 backgrounds, 0 corrupt: 100%|██████████| 176/176 [00:00<00:00, 282.66it/s]
val: New cache created: /content/labels/val.cache

AutoAnchor: 5.62 anchors/target, 1.000 Best Possible Recall (BPR). Current anchors are a good fit to dataset ✅
Plotting labels to runs/train/exp/labels.jpg... 
/content/yolov5/train.py:355: FutureWarning: `torch.cuda.amp.GradScaler(args...)` is deprecated. Please use `torch.amp.GradScaler('cuda', args...)` instead.
  scaler = torch.cuda.amp.GradScaler(enabled=amp)
Image sizes 640 train, 640 val
Using 2 dataloader workers
Logging results to runs/train/exp
Starting training for 10 epochs...

      Epoch    GPU_mem   box_loss   obj_loss   cls_loss  Instances       Size
  0%|          | 0/44 [00:00<?, ?it/s]/content/yolov5/train.py:412 
        0/9      3.51G     0.1274    0.03038    0.05248         43        640:   2%|▏         | 1/44 [00:05<04:12,  5.88s/it]/content/yolov5/train.py:412 
        0/9      3.56G     0.1266     0.0316    0.05157         51        640:   5%|▍         | 2/44 [00:06<02:00,  2.88s/it]/content/yolov5/train.py:412 
        0/9      3.56G     0.1265    0.03185    0.05191         51        640:   7%|▋         | 3/44 [00:07<01:16,  1.86s/it]/content/yolov5/train.py:412 
        0/9      3.56G     0.1267     0.0314    0.05185         41        640:   9%|▉         | 4/44 [00:07<00:55,  1.39s/it]/content/yolov5/train.py:412 
        0/9      3.56G     0.1261    0.03085    0.05222         32        640:  11%|█▏        | 5/44 [00:08<00:43,  1.12s/it]/content/yolov5/train.py:412 
        0/9      3.56G     0.1256    0.03026    0.05224         31        640:  14%|█▎        | 6/44 [00:09<00:37,  1.01it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1257    0.03013    0.05196         47        640:  16%|█▌        | 7/44 [00:10<00:33,  1.10it/s]/content/yolov5/train.py:412 
        0/9      3.56G      0.125    0.03026    0.05172         46        640:  18%|█▊        | 8/44 [00:10<00:29,  1.21it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1244    0.03011    0.05125         36        640:  20%|██        | 9/44 [00:11<00:29,  1.19it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1239    0.03012    0.05095         42        640:  23%|██▎       | 10/44 [00:12<00:24,  1.38it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1233    0.03032     0.0505         49        640:  25%|██▌       | 11/44 [00:13<00:26,  1.27it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1223    0.03028    0.04996         37        640:  27%|██▋       | 12/44 [00:13<00:22,  1.44it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1215    0.03044    0.04945         48        640:  30%|██▉       | 13/44 [00:14<00:23,  1.30it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1203    0.03069    0.04895         44        640:  32%|███▏      | 14/44 [00:14<00:20,  1.43it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1198    0.03079     0.0485         50        640:  34%|███▍      | 15/44 [00:16<00:23,  1.24it/s]/content/yolov5/train.py:412 
        0/9      3.56G      0.119    0.03111    0.04796         51        640:  36%|███▋      | 16/44 [00:16<00:18,  1.52it/s]/content/yolov5/train.py:412 
        0/9      3.56G      0.118     0.0312    0.04737         44        640:  39%|███▊      | 17/44 [00:17<00:23,  1.17it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1171    0.03104    0.04693         31        640:  41%|████      | 18/44 [00:17<00:18,  1.44it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1162    0.03108    0.04654         41        640:  43%|████▎     | 19/44 [00:18<00:19,  1.28it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1153    0.03124      0.046         45        640:  45%|████▌     | 20/44 [00:19<00:16,  1.49it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1142    0.03123    0.04543         36        640:  48%|████▊     | 21/44 [00:21<00:22,  1.01it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1133    0.03112    0.04494         34        640:  50%|█████     | 22/44 [00:21<00:17,  1.25it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1125    0.03117    0.04445         45        640:  52%|█████▏    | 23/44 [00:23<00:22,  1.05s/it]/content/yolov5/train.py:412 
        0/9      3.56G     0.1117     0.0312    0.04385         41        640:  55%|█████▍    | 24/44 [00:23<00:17,  1.15it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1109    0.03118    0.04341         40        640:  57%|█████▋    | 25/44 [00:26<00:30,  1.62s/it]/content/yolov5/train.py:412 
        0/9      3.56G       0.11    0.03133    0.04304         44        640:  59%|█████▉    | 26/44 [00:27<00:26,  1.46s/it]/content/yolov5/train.py:412 
        0/9      3.56G     0.1092    0.03142     0.0426         45        640:  61%|██████▏   | 27/44 [00:30<00:28,  1.70s/it]/content/yolov5/train.py:412 
        0/9      3.56G     0.1085    0.03146    0.04218         43        640:  64%|██████▎   | 28/44 [00:30<00:20,  1.29s/it]/content/yolov5/train.py:412 
        0/9      3.56G     0.1077    0.03159    0.04176         47        640:  66%|██████▌   | 29/44 [00:31<00:18,  1.25s/it]/content/yolov5/train.py:412 
        0/9      3.56G     0.1069    0.03181    0.04141         50        640:  68%|██████▊   | 30/44 [00:32<00:13,  1.03it/s]/content/yolov5/train.py:412 
        0/9      3.56G      0.106    0.03182    0.04113         38        640:  70%|███████   | 31/44 [00:33<00:12,  1.01it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1054     0.0318    0.04075         38        640:  73%|███████▎  | 32/44 [00:33<00:09,  1.27it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1047    0.03173    0.04034         38        640:  75%|███████▌  | 33/44 [00:34<00:09,  1.14it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1042    0.03169    0.04006         41        640:  77%|███████▋  | 34/44 [00:34<00:07,  1.39it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1038    0.03177     0.0398         54        640:  80%|███████▉  | 35/44 [00:35<00:07,  1.19it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1031    0.03171    0.03943         36        640:  82%|████████▏ | 36/44 [00:36<00:05,  1.46it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1023    0.03183    0.03898         43        640:  84%|████████▍ | 37/44 [00:37<00:05,  1.25it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1018    0.03169    0.03874         34        640:  86%|████████▋ | 38/44 [00:37<00:03,  1.52it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1011    0.03166    0.03829         38        640:  89%|████████▊ | 39/44 [00:38<00:03,  1.26it/s]/content/yolov5/train.py:412 
        0/9      3.56G     0.1006    0.03173    0.03808         47        640:  91%|█████████ | 40/44 [00:39<00:02,  1.52it/s]/content/yolov5/train.py:412 
        0/9      3.56G    0.09993    0.03173    0.03771         38        640:  93%|█████████▎| 41/44 [00:40<00:02,  1.16it/s]/content/yolov5/train.py:412 
        0/9      3.56G    0.09926     0.0318    0.03753         41        640:  95%|█████████▌| 42/44 [00:40<00:01,  1.32it/s]/content/yolov5/train.py:412 
        0/9      3.56G    0.09875    0.03183    0.03732         44        640:  98%|█████████▊| 43/44 [00:42<00:01,  1.13s/it]/content/yolov5/train.py:412 
        0/9      3.56G    0.09821    0.03176    0.03715         29        640: 100%|██████████| 44/44 [00:43<00:00,  1.00it/s]
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 6/6 [00:08<00:00,  1.48s/it]
                   all        176        252      0.798      0.206      0.148     0.0435

      Epoch    GPU_mem   box_loss   obj_loss   cls_loss  Instances       Size
  0%|          | 0/44 [00:00<?, ?it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.07134    0.03967    0.02428         51        640:   2%|▏         | 1/44 [00:00<00:10,  3.96it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.07461    0.03632     0.0257         44        640:   5%|▍         | 2/44 [00:00<00:13,  3.22it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.07445     0.0356    0.02642         49        640:   7%|▋         | 3/44 [00:00<00:11,  3.45it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.07389    0.03402    0.02601         40        640:   9%|▉         | 4/44 [00:01<00:12,  3.30it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.07337    0.03454    0.02712         52        640:  11%|█▏        | 5/44 [00:01<00:17,  2.27it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.07248    0.03335    0.02628         34        640:  14%|█▎        | 6/44 [00:02<00:15,  2.41it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.07144    0.03244    0.02528         31        640:  16%|█▌        | 7/44 [00:03<00:23,  1.59it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.07115    0.03226    0.02547         44        640:  18%|█▊        | 8/44 [00:03<00:19,  1.89it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.07082    0.03153      0.025         35        640:  20%|██        | 9/44 [00:04<00:25,  1.37it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.07043    0.03142    0.02448         42        640:  23%|██▎       | 10/44 [00:05<00:20,  1.66it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.07025    0.03071    0.02456         30        640:  25%|██▌       | 11/44 [00:06<00:24,  1.32it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06992    0.03067    0.02422         42        640:  27%|██▋       | 12/44 [00:06<00:20,  1.59it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06971     0.0307    0.02399         46        640:  30%|██▉       | 13/44 [00:07<00:25,  1.22it/s]/content/yolov5/train.py:412 
        1/9      4.38G     0.0695     0.0304    0.02336         39        640:  32%|███▏      | 14/44 [00:08<00:20,  1.47it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06949    0.03014    0.02309         41        640:  34%|███▍      | 15/44 [00:10<00:30,  1.06s/it]/content/yolov5/train.py:412 
        1/9      4.38G    0.06943    0.02998    0.02284         37        640:  36%|███▋      | 16/44 [00:10<00:24,  1.15it/s]/content/yolov5/train.py:412 
        1/9      4.38G     0.0695     0.0301    0.02268         46        640:  39%|███▊      | 17/44 [00:12<00:35,  1.33s/it]/content/yolov5/train.py:412 
        1/9      4.38G    0.06953    0.02976    0.02259         36        640:  41%|████      | 18/44 [00:13<00:27,  1.07s/it]/content/yolov5/train.py:412 
        1/9      4.38G    0.06929    0.02977     0.0226         45        640:  43%|████▎     | 19/44 [00:15<00:35,  1.40s/it]/content/yolov5/train.py:412 
        1/9      4.38G    0.06923    0.03001    0.02291         53        640:  45%|████▌     | 20/44 [00:16<00:26,  1.12s/it]/content/yolov5/train.py:412 
        1/9      4.38G     0.0693    0.02975    0.02291         37        640:  48%|████▊     | 21/44 [00:17<00:28,  1.22s/it]/content/yolov5/train.py:412 
        1/9      4.38G    0.06934    0.02936    0.02258         30        640:  50%|█████     | 22/44 [00:17<00:20,  1.05it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06926    0.02916    0.02257         39        640:  52%|█████▏    | 23/44 [00:18<00:20,  1.03it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06881    0.02908    0.02223         41        640:  55%|█████▍    | 24/44 [00:19<00:15,  1.32it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06843    0.02859    0.02207         22        640:  57%|█████▋    | 25/44 [00:20<00:16,  1.14it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06837    0.02846     0.0219         38        640:  59%|█████▉    | 26/44 [00:20<00:12,  1.43it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06816    0.02829    0.02161         35        640:  61%|██████▏   | 27/44 [00:21<00:13,  1.24it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06815     0.0282    0.02159         42        640:  64%|██████▎   | 28/44 [00:21<00:10,  1.51it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06809    0.02828    0.02159         49        640:  66%|██████▌   | 29/44 [00:23<00:11,  1.27it/s]/content/yolov5/train.py:412 
        1/9      4.38G     0.0679    0.02812    0.02144         36        640:  68%|██████▊   | 30/44 [00:23<00:08,  1.58it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06783    0.02787    0.02147         32        640:  70%|███████   | 31/44 [00:24<00:10,  1.22it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06799    0.02787    0.02136         55        640:  73%|███████▎  | 32/44 [00:24<00:07,  1.52it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06784    0.02758    0.02131         26        640:  75%|███████▌  | 33/44 [00:25<00:08,  1.31it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06783     0.0275    0.02137         42        640:  77%|███████▋  | 34/44 [00:26<00:06,  1.59it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06771    0.02756    0.02125         48        640:  80%|███████▉  | 35/44 [00:27<00:07,  1.21it/s]/content/yolov5/train.py:412 
        1/9      4.38G     0.0678     0.0275    0.02125         44        640:  82%|████████▏ | 36/44 [00:28<00:05,  1.34it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06765    0.02752    0.02129         44        640:  84%|████████▍ | 37/44 [00:29<00:07,  1.08s/it]/content/yolov5/train.py:412 
        1/9      4.38G    0.06786    0.02739    0.02123         41        640:  86%|████████▋ | 38/44 [00:30<00:05,  1.13it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06805    0.02749    0.02114         57        640:  89%|████████▊ | 39/44 [00:32<00:05,  1.19s/it]/content/yolov5/train.py:412 
        1/9      4.38G    0.06819    0.02745    0.02112         42        640:  91%|█████████ | 40/44 [00:32<00:03,  1.00it/s]/content/yolov5/train.py:412 
        1/9      4.38G    0.06795     0.0273    0.02098         33        640:  93%|█████████▎| 41/44 [00:34<00:04,  1.38s/it]/content/yolov5/train.py:412 
        1/9      4.38G    0.06762     0.0272    0.02087         32        640:  95%|█████████▌| 42/44 [00:35<00:02,  1.08s/it]/content/yolov5/train.py:412 
        1/9      4.38G    0.06739    0.02711    0.02081         38        640:  98%|█████████▊| 43/44 [00:37<00:01,  1.53s/it]/content/yolov5/train.py:412 
        1/9      4.38G    0.06742    0.02703    0.02087         33        640: 100%|██████████| 44/44 [00:38<00:00,  1.15it/s]
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 6/6 [00:04<00:00,  1.33it/s]
                   all        176        252     0.0778      0.293      0.124     0.0334

      Epoch    GPU_mem   box_loss   obj_loss   cls_loss  Instances       Size
  0%|          | 0/44 [00:00<?, ?it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06918    0.02234    0.01946         38        640:   2%|▏         | 1/44 [00:00<00:11,  3.85it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.07046    0.02274    0.01847         44        640:   5%|▍         | 2/44 [00:00<00:12,  3.50it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06829    0.02147    0.01718         30        640:   7%|▋         | 3/44 [00:00<00:11,  3.50it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06802    0.02203    0.01718         40        640:   9%|▉         | 4/44 [00:01<00:11,  3.63it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06758    0.02146     0.0165         34        640:  11%|█▏        | 5/44 [00:01<00:18,  2.14it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06817     0.0211    0.01644         40        640:  14%|█▎        | 6/44 [00:02<00:15,  2.42it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06874    0.02305     0.0166         66        640:  16%|█▌        | 7/44 [00:03<00:23,  1.58it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06889    0.02238    0.01599         32        640:  18%|█▊        | 8/44 [00:03<00:19,  1.85it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06871    0.02303    0.01585         53        640:  20%|██        | 9/44 [00:04<00:23,  1.48it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06877    0.02337    0.01601         50        640:  23%|██▎       | 10/44 [00:05<00:20,  1.66it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06847    0.02319    0.01627         37        640:  25%|██▌       | 11/44 [00:06<00:30,  1.09it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06792    0.02328    0.01621         41        640:  27%|██▋       | 12/44 [00:07<00:26,  1.19it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06743    0.02331    0.01626         40        640:  30%|██▉       | 13/44 [00:08<00:32,  1.05s/it]/content/yolov5/train.py:412 
        2/9      4.38G    0.06722     0.0234     0.0164         47        640:  32%|███▏      | 14/44 [00:09<00:29,  1.01it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06732    0.02333    0.01621         43        640:  34%|███▍      | 15/44 [00:11<00:35,  1.24s/it]/content/yolov5/train.py:412 
        2/9      4.38G    0.06761    0.02323     0.0164         39        640:  36%|███▋      | 16/44 [00:12<00:29,  1.06s/it]/content/yolov5/train.py:412 
        2/9      4.38G    0.06766    0.02345    0.01647         51        640:  39%|███▊      | 17/44 [00:14<00:34,  1.28s/it]/content/yolov5/train.py:412 
        2/9      4.38G    0.06727    0.02331    0.01642         35        640:  41%|████      | 18/44 [00:14<00:29,  1.14s/it]/content/yolov5/train.py:412 
        2/9      4.38G    0.06681    0.02349    0.01662         49        640:  43%|████▎     | 19/44 [00:16<00:31,  1.26s/it]/content/yolov5/train.py:412 
        2/9      4.38G    0.06622    0.02371    0.01678         46        640:  45%|████▌     | 20/44 [00:16<00:24,  1.04s/it]/content/yolov5/train.py:412 
        2/9      4.38G    0.06604    0.02375    0.01676         45        640:  48%|████▊     | 21/44 [00:17<00:23,  1.02s/it]/content/yolov5/train.py:412 
        2/9      4.38G    0.06594    0.02407    0.01675         59        640:  50%|█████     | 22/44 [00:18<00:18,  1.19it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06583    0.02415    0.01675         51        640:  52%|█████▏    | 23/44 [00:19<00:18,  1.11it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06567    0.02419    0.01687         45        640:  55%|█████▍    | 24/44 [00:19<00:15,  1.26it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06552    0.02406    0.01672         37        640:  57%|█████▋    | 25/44 [00:20<00:15,  1.22it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06561    0.02383    0.01665         35        640:  59%|█████▉    | 26/44 [00:21<00:12,  1.40it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06566     0.0237    0.01657         38        640:  61%|██████▏   | 27/44 [00:22<00:13,  1.24it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06556    0.02343    0.01651         31        640:  64%|██████▎   | 28/44 [00:22<00:11,  1.45it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06564    0.02333    0.01657         39        640:  66%|██████▌   | 29/44 [00:23<00:12,  1.24it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06553    0.02317    0.01641         39        640:  68%|██████▊   | 30/44 [00:24<00:09,  1.53it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06565    0.02309    0.01633         44        640:  70%|███████   | 31/44 [00:25<00:10,  1.21it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06566    0.02299    0.01637         39        640:  73%|███████▎  | 32/44 [00:25<00:08,  1.48it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06565    0.02295    0.01624         51        640:  75%|███████▌  | 33/44 [00:26<00:09,  1.12it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06549    0.02301     0.0162         42        640:  77%|███████▋  | 34/44 [00:27<00:08,  1.24it/s]/content/yolov5/train.py:412 
        2/9      4.38G     0.0655    0.02286    0.01605         38        640:  80%|███████▉  | 35/44 [00:29<00:09,  1.09s/it]/content/yolov5/train.py:412 
        2/9      4.38G    0.06534    0.02267      0.016         30        640:  82%|████████▏ | 36/44 [00:29<00:07,  1.06it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06553    0.02253    0.01604         38        640:  84%|████████▍ | 37/44 [00:32<00:09,  1.33s/it]/content/yolov5/train.py:412 
        2/9      4.38G    0.06565    0.02235    0.01593         32        640:  86%|████████▋ | 38/44 [00:32<00:06,  1.03s/it]/content/yolov5/train.py:412 
        2/9      4.38G    0.06576    0.02225    0.01588         38        640:  89%|████████▊ | 39/44 [00:34<00:06,  1.39s/it]/content/yolov5/train.py:412 
        2/9      4.38G    0.06592    0.02223    0.01591         44        640:  91%|█████████ | 40/44 [00:35<00:04,  1.12s/it]/content/yolov5/train.py:412 
        2/9      4.38G    0.06576    0.02216    0.01592         33        640:  93%|█████████▎| 41/44 [00:36<00:03,  1.23s/it]/content/yolov5/train.py:412 
        2/9      4.38G     0.0657    0.02215    0.01587         45        640:  95%|█████████▌| 42/44 [00:36<00:01,  1.06it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06557    0.02206    0.01581         30        640:  98%|█████████▊| 43/44 [00:38<00:00,  1.02it/s]/content/yolov5/train.py:412 
        2/9      4.38G    0.06557    0.02208     0.0158         40        640: 100%|██████████| 44/44 [00:38<00:00,  1.15it/s]
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 6/6 [00:04<00:00,  1.31it/s]
                   all        176        252      0.494      0.514      0.407      0.176

      Epoch    GPU_mem   box_loss   obj_loss   cls_loss  Instances       Size
  0%|          | 0/44 [00:00<?, ?it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.06367    0.02081    0.01066         41        640:   2%|▏         | 1/44 [00:00<00:11,  3.87it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.06217     0.0198    0.01322         38        640:   5%|▍         | 2/44 [00:00<00:11,  3.77it/s]/content/yolov5/train.py:412 
        3/9      4.38G     0.0618    0.02187     0.0137         48        640:   7%|▋         | 3/44 [00:00<00:11,  3.71it/s]/content/yolov5/train.py:412 
        3/9      4.38G     0.0609    0.02012    0.01354         27        640:   9%|▉         | 4/44 [00:01<00:12,  3.25it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.06126    0.01915    0.01307         30        640:  11%|█▏        | 5/44 [00:01<00:18,  2.10it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.06065    0.01977    0.01332         45        640:  14%|█▎        | 6/44 [00:02<00:18,  2.04it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.06033    0.01978    0.01327         43        640:  16%|█▌        | 7/44 [00:04<00:34,  1.08it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.06056    0.02058    0.01305         58        640:  18%|█▊        | 8/44 [00:04<00:30,  1.18it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.06033     0.0204    0.01317         39        640:  20%|██        | 9/44 [00:06<00:41,  1.19s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.06015    0.02084    0.01301         52        640:  23%|██▎       | 10/44 [00:07<00:34,  1.01s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.05993    0.02106     0.0129         47        640:  25%|██▌       | 11/44 [00:09<00:46,  1.40s/it]/content/yolov5/train.py:412 
        3/9      4.38G     0.0596    0.02163    0.01293         53        640:  27%|██▋       | 12/44 [00:10<00:36,  1.14s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.05963    0.02146    0.01312         37        640:  30%|██▉       | 13/44 [00:12<00:42,  1.36s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.05952    0.02111    0.01278         37        640:  32%|███▏      | 14/44 [00:12<00:30,  1.03s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.05932    0.02098    0.01252         41        640:  34%|███▍      | 15/44 [00:13<00:30,  1.05s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.05934    0.02063    0.01235         34        640:  36%|███▋      | 16/44 [00:13<00:22,  1.22it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05921     0.0205    0.01221         39        640:  39%|███▊      | 17/44 [00:14<00:24,  1.09it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05915    0.02049    0.01209         44        640:  41%|████      | 18/44 [00:15<00:19,  1.30it/s]/content/yolov5/train.py:412 
        3/9      4.38G     0.0589    0.02065    0.01209         49        640:  43%|████▎     | 19/44 [00:16<00:21,  1.18it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05909    0.02062    0.01195         49        640:  45%|████▌     | 20/44 [00:16<00:17,  1.41it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05876    0.02045    0.01199         30        640:  48%|████▊     | 21/44 [00:17<00:18,  1.27it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05852    0.02036    0.01202         37        640:  50%|█████     | 22/44 [00:18<00:15,  1.45it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05827    0.02023    0.01191         35        640:  52%|█████▏    | 23/44 [00:19<00:17,  1.23it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05813    0.02036    0.01188         53        640:  55%|█████▍    | 24/44 [00:19<00:13,  1.48it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05795    0.02008    0.01189         29        640:  57%|█████▋    | 25/44 [00:20<00:15,  1.26it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05788    0.02013    0.01188         44        640:  59%|█████▉    | 26/44 [00:21<00:12,  1.50it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05775    0.02015    0.01183         41        640:  61%|██████▏   | 27/44 [00:22<00:15,  1.09it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05773       0.02    0.01178         34        640:  64%|██████▎   | 28/44 [00:23<00:12,  1.27it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05754     0.0199    0.01168         41        640:  66%|██████▌   | 29/44 [00:24<00:15,  1.04s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.05746    0.02001    0.01169         52        640:  68%|██████▊   | 30/44 [00:25<00:13,  1.03it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05735    0.01987    0.01162         35        640:  70%|███████   | 31/44 [00:27<00:15,  1.17s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.05719    0.01987    0.01163         40        640:  73%|███████▎  | 32/44 [00:28<00:13,  1.13s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.05718    0.01963    0.01149         27        640:  75%|███████▌  | 33/44 [00:29<00:14,  1.29s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.05727    0.01996    0.01154         68        640:  77%|███████▋  | 34/44 [00:31<00:12,  1.23s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.05729    0.01995    0.01158         43        640:  80%|███████▉  | 35/44 [00:32<00:12,  1.36s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.05735    0.01988     0.0116         39        640:  82%|████████▏ | 36/44 [00:33<00:09,  1.19s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.05723    0.02001    0.01162         53        640:  84%|████████▍ | 37/44 [00:34<00:07,  1.14s/it]/content/yolov5/train.py:412 
        3/9      4.38G    0.05703       0.02    0.01165         40        640:  86%|████████▋ | 38/44 [00:34<00:05,  1.14it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05686    0.01992    0.01158         38        640:  89%|████████▊ | 39/44 [00:35<00:04,  1.07it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05677    0.01996    0.01152         51        640:  91%|█████████ | 40/44 [00:36<00:03,  1.28it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05683       0.02    0.01163         48        640:  93%|█████████▎| 41/44 [00:37<00:02,  1.18it/s]/content/yolov5/train.py:412 
        3/9      4.38G     0.0569    0.01995    0.01163         34        640:  95%|█████████▌| 42/44 [00:37<00:01,  1.43it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05692    0.01995    0.01162         46        640:  98%|█████████▊| 43/44 [00:38<00:00,  1.23it/s]/content/yolov5/train.py:412 
        3/9      4.38G    0.05698    0.01983    0.01166         26        640: 100%|██████████| 44/44 [00:39<00:00,  1.13it/s]
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 6/6 [00:04<00:00,  1.29it/s]
                   all        176        252      0.436      0.719      0.574      0.267

      Epoch    GPU_mem   box_loss   obj_loss   cls_loss  Instances       Size
  0%|          | 0/44 [00:00<?, ?it/s]/content/yolov5/train.py:412 
        4/9      4.38G     0.0476     0.0141    0.01079         32        640:   2%|▏         | 1/44 [00:00<00:13,  3.26it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.04651    0.01501    0.01082         38        640:   5%|▍         | 2/44 [00:00<00:13,  3.18it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.04864    0.01637    0.01078         43        640:   7%|▋         | 3/44 [00:00<00:11,  3.43it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.04919    0.01593    0.01026         32        640:   9%|▉         | 4/44 [00:01<00:13,  3.08it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05022    0.01654   0.009976         45        640:  11%|█▏        | 5/44 [00:02<00:26,  1.47it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05084    0.01691   0.009994         43        640:  14%|█▎        | 6/44 [00:03<00:23,  1.62it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05129    0.01692   0.009585         39        640:  16%|█▌        | 7/44 [00:05<00:42,  1.14s/it]/content/yolov5/train.py:412 
        4/9      4.38G    0.05193    0.01668   0.009798         39        640:  18%|█▊        | 8/44 [00:05<00:33,  1.08it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05174    0.01724    0.01005         50        640:  20%|██        | 9/44 [00:08<00:48,  1.39s/it]/content/yolov5/train.py:412 
        4/9      4.38G    0.05173    0.01749    0.01013         48        640:  23%|██▎       | 10/44 [00:08<00:36,  1.08s/it]/content/yolov5/train.py:412 
        4/9      4.38G    0.05167    0.01748    0.01018         40        640:  25%|██▌       | 11/44 [00:10<00:45,  1.39s/it]/content/yolov5/train.py:412 
        4/9      4.38G     0.0516    0.01742    0.01003         42        640:  27%|██▋       | 12/44 [00:10<00:33,  1.05s/it]/content/yolov5/train.py:412 
        4/9      4.38G    0.05163     0.0172   0.009886         34        640:  30%|██▉       | 13/44 [00:12<00:33,  1.08s/it]/content/yolov5/train.py:412 
        4/9      4.38G    0.05183    0.01734   0.009937         46        640:  32%|███▏      | 14/44 [00:12<00:25,  1.19it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05177    0.01714   0.009803         35        640:  34%|███▍      | 15/44 [00:13<00:28,  1.00it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05179    0.01734   0.009753         47        640:  36%|███▋      | 16/44 [00:14<00:22,  1.26it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05165    0.01749   0.009653         46        640:  39%|███▊      | 17/44 [00:15<00:23,  1.13it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05164    0.01741   0.009591         39        640:  41%|████      | 18/44 [00:15<00:18,  1.42it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05163    0.01771   0.009654         59        640:  43%|████▎     | 19/44 [00:16<00:22,  1.13it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05138    0.01759   0.009685         33        640:  45%|████▌     | 20/44 [00:17<00:17,  1.39it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05133    0.01757   0.009706         45        640:  48%|████▊     | 21/44 [00:18<00:19,  1.18it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05123    0.01758   0.009641         48        640:  50%|█████     | 22/44 [00:18<00:14,  1.47it/s]/content/yolov5/train.py:412 
        4/9      4.38G     0.0512    0.01753   0.009569         38        640:  52%|█████▏    | 23/44 [00:19<00:16,  1.26it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05111    0.01739   0.009647         33        640:  55%|█████▍    | 24/44 [00:19<00:13,  1.51it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05124    0.01752   0.009576         53        640:  57%|█████▋    | 25/44 [00:21<00:16,  1.17it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05144    0.01758   0.009485         53        640:  59%|█████▉    | 26/44 [00:21<00:12,  1.42it/s]/content/yolov5/train.py:412 
        4/9      4.38G     0.0517    0.01764   0.009521         50        640:  61%|██████▏   | 27/44 [00:23<00:18,  1.07s/it]/content/yolov5/train.py:412 
        4/9      4.38G    0.05179    0.01752   0.009386         40        640:  64%|██████▎   | 28/44 [00:23<00:13,  1.15it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05164    0.01751    0.00932         45        640:  66%|██████▌   | 29/44 [00:26<00:18,  1.25s/it]/content/yolov5/train.py:412 
        4/9      4.38G    0.05157    0.01765   0.009371         52        640:  68%|██████▊   | 30/44 [00:26<00:13,  1.00it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05138    0.01758   0.009296         36        640:  70%|███████   | 31/44 [00:28<00:18,  1.41s/it]/content/yolov5/train.py:412 
        4/9      4.38G    0.05136    0.01749   0.009293         42        640:  73%|███████▎  | 32/44 [00:29<00:13,  1.14s/it]/content/yolov5/train.py:412 
        4/9      4.38G    0.05126    0.01734   0.009209         33        640:  75%|███████▌  | 33/44 [00:31<00:16,  1.50s/it]/content/yolov5/train.py:412 
        4/9      4.38G    0.05118    0.01731   0.009138         44        640:  77%|███████▋  | 34/44 [00:31<00:11,  1.15s/it]/content/yolov5/train.py:412 
        4/9      4.38G    0.05096    0.01722   0.009055         39        640:  80%|███████▉  | 35/44 [00:33<00:10,  1.14s/it]/content/yolov5/train.py:412 
        4/9      4.38G    0.05088    0.01723   0.009052         45        640:  82%|████████▏ | 36/44 [00:33<00:07,  1.12it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05073    0.01713   0.008977         34        640:  84%|████████▍ | 37/44 [00:34<00:06,  1.02it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05055    0.01715   0.008914         45        640:  86%|████████▋ | 38/44 [00:34<00:04,  1.29it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05055    0.01722   0.008842         56        640:  89%|████████▊ | 39/44 [00:36<00:04,  1.13it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05054    0.01714   0.008922         39        640:  91%|█████████ | 40/44 [00:36<00:02,  1.38it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05059    0.01704     0.0089         36        640:  93%|█████████▎| 41/44 [00:37<00:02,  1.19it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05059    0.01702   0.008898         39        640:  95%|█████████▌| 42/44 [00:37<00:01,  1.49it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05057    0.01705   0.008807         54        640:  98%|█████████▊| 43/44 [00:39<00:00,  1.19it/s]/content/yolov5/train.py:412 
        4/9      4.38G    0.05054      0.017   0.008832         36        640: 100%|██████████| 44/44 [00:39<00:00,  1.12it/s]
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 6/6 [00:05<00:00,  1.05it/s]
                   all        176        252      0.537      0.723      0.605      0.308

      Epoch    GPU_mem   box_loss   obj_loss   cls_loss  Instances       Size
  0%|          | 0/44 [00:00<?, ?it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04639    0.01218   0.007374         35        640:   2%|▏         | 1/44 [00:00<00:14,  2.89it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04783    0.01227   0.008956         32        640:   5%|▍         | 2/44 [00:00<00:15,  2.66it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04746     0.0134   0.008804         42        640:   7%|▋         | 3/44 [00:01<00:16,  2.50it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04746    0.01357   0.008074         39        640:   9%|▉         | 4/44 [00:01<00:16,  2.39it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04679     0.0151   0.008198         56        640:  11%|█▏        | 5/44 [00:03<00:30,  1.29it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04662    0.01496   0.008166         40        640:  14%|█▎        | 6/44 [00:03<00:25,  1.52it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04557    0.01519   0.008174         42        640:  16%|█▌        | 7/44 [00:05<00:45,  1.23s/it]/content/yolov5/train.py:412 
        5/9      4.38G    0.04486    0.01485   0.007964         33        640:  18%|█▊        | 8/44 [00:06<00:34,  1.05it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04478    0.01541   0.008217         51        640:  20%|██        | 9/44 [00:07<00:35,  1.01s/it]/content/yolov5/train.py:412 
        5/9      4.38G    0.04471    0.01581   0.007946         52        640:  23%|██▎       | 10/44 [00:07<00:26,  1.28it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04483    0.01602   0.007911         49        640:  25%|██▌       | 11/44 [00:08<00:29,  1.12it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04492    0.01576   0.007863         36        640:  27%|██▋       | 12/44 [00:09<00:23,  1.39it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04476    0.01569   0.007758         41        640:  30%|██▉       | 13/44 [00:10<00:25,  1.22it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04464    0.01542   0.007632         35        640:  32%|███▏      | 14/44 [00:10<00:19,  1.54it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04457    0.01545   0.007611         45        640:  34%|███▍      | 15/44 [00:11<00:22,  1.28it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04422    0.01531   0.007479         34        640:  36%|███▋      | 16/44 [00:12<00:20,  1.38it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04395    0.01528   0.007317         41        640:  39%|███▊      | 17/44 [00:12<00:20,  1.32it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04391    0.01521   0.007326         38        640:  41%|████      | 18/44 [00:13<00:18,  1.40it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04388     0.0154   0.007345         51        640:  43%|████▎     | 19/44 [00:14<00:18,  1.34it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04369    0.01537   0.007252         42        640:  45%|████▌     | 20/44 [00:15<00:17,  1.36it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04382     0.0152   0.007145         34        640:  48%|████▊     | 21/44 [00:15<00:16,  1.39it/s]/content/yolov5/train.py:412 
        5/9      4.38G     0.0439    0.01507   0.007041         38        640:  50%|█████     | 22/44 [00:16<00:17,  1.25it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04406    0.01502   0.007193         40        640:  52%|█████▏    | 23/44 [00:17<00:19,  1.10it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04424    0.01504    0.00726         44        640:  55%|█████▍    | 24/44 [00:19<00:22,  1.11s/it]/content/yolov5/train.py:412 
        5/9      4.38G    0.04414    0.01509   0.007203         47        640:  57%|█████▋    | 25/44 [00:20<00:19,  1.00s/it]/content/yolov5/train.py:412 
        5/9      4.38G    0.04399    0.01512   0.007241         44        640:  59%|█████▉    | 26/44 [00:22<00:22,  1.26s/it]/content/yolov5/train.py:412 
        5/9      4.38G    0.04394    0.01507   0.007239         39        640:  61%|██████▏   | 27/44 [00:22<00:19,  1.14s/it]/content/yolov5/train.py:412 
        5/9      4.38G    0.04387    0.01489   0.007108         33        640:  64%|██████▎   | 28/44 [00:24<00:21,  1.34s/it]/content/yolov5/train.py:412 
        5/9      4.38G    0.04377    0.01473   0.007103         30        640:  66%|██████▌   | 29/44 [00:25<00:17,  1.19s/it]/content/yolov5/train.py:412 
        5/9      4.38G     0.0438    0.01483   0.007053         49        640:  68%|██████▊   | 30/44 [00:26<00:17,  1.25s/it]/content/yolov5/train.py:412 
        5/9      4.38G    0.04375    0.01486   0.006975         45        640:  70%|███████   | 31/44 [00:27<00:12,  1.00it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04373    0.01486   0.006924         43        640:  73%|███████▎  | 32/44 [00:28<00:12,  1.06s/it]/content/yolov5/train.py:412 
        5/9      4.38G    0.04381    0.01487   0.006871         47        640:  75%|███████▌  | 33/44 [00:28<00:09,  1.21it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04384    0.01497   0.006869         52        640:  77%|███████▋  | 34/44 [00:30<00:09,  1.10it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04384    0.01495   0.006858         37        640:  80%|███████▉  | 35/44 [00:30<00:06,  1.39it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04399    0.01487   0.006832         34        640:  82%|████████▏ | 36/44 [00:31<00:06,  1.15it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04388    0.01502   0.006823         61        640:  84%|████████▍ | 37/44 [00:31<00:04,  1.43it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04382    0.01498   0.006786         41        640:  86%|████████▋ | 38/44 [00:32<00:05,  1.20it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04371      0.015   0.006765         46        640:  89%|████████▊ | 39/44 [00:33<00:03,  1.50it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04347    0.01492   0.006716         37        640:  91%|█████████ | 40/44 [00:34<00:03,  1.20it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04348     0.0149   0.006705         46        640:  93%|█████████▎| 41/44 [00:34<00:01,  1.54it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04344    0.01491   0.006645         44        640:  95%|█████████▌| 42/44 [00:35<00:01,  1.26it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04349     0.0149   0.006618         48        640:  98%|█████████▊| 43/44 [00:36<00:00,  1.49it/s]/content/yolov5/train.py:412 
        5/9      4.38G    0.04357    0.01487   0.006696         32        640: 100%|██████████| 44/44 [00:37<00:00,  1.18it/s]
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 6/6 [00:07<00:00,  1.26s/it]
                   all        176        252      0.862      0.766      0.842      0.436

      Epoch    GPU_mem   box_loss   obj_loss   cls_loss  Instances       Size
  0%|          | 0/44 [00:00<?, ?it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03947     0.0135   0.006244         41        640:   2%|▏         | 1/44 [00:00<00:14,  3.01it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.04004    0.01379   0.005853         42        640:   5%|▍         | 2/44 [00:00<00:12,  3.26it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.04066    0.01322   0.005969         35        640:   7%|▋         | 3/44 [00:00<00:12,  3.30it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03972    0.01298   0.005343         41        640:   9%|▉         | 4/44 [00:01<00:12,  3.22it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03987    0.01328   0.005489         44        640:  11%|█▏        | 5/44 [00:01<00:17,  2.24it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.04008    0.01345   0.005511         41        640:  14%|█▎        | 6/44 [00:02<00:16,  2.37it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.04028    0.01383   0.005829         45        640:  16%|█▌        | 7/44 [00:03<00:22,  1.63it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.04013    0.01349   0.005687         35        640:  18%|█▊        | 8/44 [00:03<00:20,  1.74it/s]/content/yolov5/train.py:412 
        6/9      4.38G       0.04    0.01349   0.005541         44        640:  20%|██        | 9/44 [00:04<00:24,  1.44it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03975    0.01343   0.005396         39        640:  23%|██▎       | 10/44 [00:05<00:22,  1.52it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03935    0.01327   0.005385         40        640:  25%|██▌       | 11/44 [00:06<00:23,  1.42it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03909     0.0128   0.005398         24        640:  27%|██▋       | 12/44 [00:06<00:20,  1.53it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03957    0.01275   0.005439         35        640:  30%|██▉       | 13/44 [00:07<00:23,  1.34it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03969    0.01274   0.005548         41        640:  32%|███▏      | 14/44 [00:08<00:19,  1.54it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03999    0.01276   0.005498         36        640:  34%|███▍      | 15/44 [00:09<00:21,  1.33it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03992    0.01272   0.005412         37        640:  36%|███▋      | 16/44 [00:09<00:19,  1.47it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03993     0.0126   0.005425         36        640:  39%|███▊      | 17/44 [00:10<00:20,  1.32it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03965     0.0127   0.005405         47        640:  41%|████      | 18/44 [00:11<00:21,  1.20it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03927    0.01286    0.00533         51        640:  43%|████▎     | 19/44 [00:12<00:23,  1.06it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03911    0.01297   0.005378         45        640:  45%|████▌     | 20/44 [00:13<00:23,  1.00it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03917    0.01296   0.005397         41        640:  48%|████▊     | 21/44 [00:15<00:24,  1.06s/it]/content/yolov5/train.py:412 
        6/9      4.38G    0.03913    0.01283   0.005355         30        640:  50%|█████     | 22/44 [00:16<00:24,  1.13s/it]/content/yolov5/train.py:412 
        6/9      4.38G    0.03913    0.01289    0.00538         44        640:  52%|█████▏    | 23/44 [00:17<00:23,  1.10s/it]/content/yolov5/train.py:412 
        6/9      4.38G    0.03906    0.01285   0.005329         39        640:  55%|█████▍    | 24/44 [00:19<00:26,  1.31s/it]/content/yolov5/train.py:412 
        6/9      4.38G    0.03885    0.01277   0.005316         37        640:  57%|█████▋    | 25/44 [00:20<00:22,  1.17s/it]/content/yolov5/train.py:412 
        6/9      4.38G    0.03878    0.01282   0.005279         46        640:  59%|█████▉    | 26/44 [00:21<00:22,  1.24s/it]/content/yolov5/train.py:412 
        6/9      4.38G     0.0387    0.01285   0.005348         41        640:  61%|██████▏   | 27/44 [00:21<00:17,  1.01s/it]/content/yolov5/train.py:412 
        6/9      4.38G    0.03889    0.01289   0.005355         43        640:  64%|██████▎   | 28/44 [00:22<00:16,  1.02s/it]/content/yolov5/train.py:412 
        6/9      4.38G    0.03886    0.01305   0.005343         55        640:  66%|██████▌   | 29/44 [00:23<00:12,  1.18it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03879    0.01301   0.005267         38        640:  68%|██████▊   | 30/44 [00:24<00:12,  1.12it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03872      0.013   0.005376         39        640:  70%|███████   | 31/44 [00:24<00:09,  1.32it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03883    0.01294   0.005346         38        640:  73%|███████▎  | 32/44 [00:25<00:09,  1.21it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03885    0.01293   0.005339         41        640:  75%|███████▌  | 33/44 [00:26<00:08,  1.34it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03886    0.01287   0.005344         38        640:  77%|███████▋  | 34/44 [00:27<00:07,  1.26it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03881    0.01283   0.005341         39        640:  80%|███████▉  | 35/44 [00:27<00:06,  1.37it/s]/content/yolov5/train.py:412 
        6/9      4.38G     0.0388    0.01278   0.005301         33        640:  82%|████████▏ | 36/44 [00:28<00:06,  1.30it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03876    0.01279   0.005288         40        640:  84%|████████▍ | 37/44 [00:29<00:04,  1.50it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03864    0.01275   0.005381         31        640:  86%|████████▋ | 38/44 [00:30<00:04,  1.24it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03855    0.01272   0.005327         40        640:  89%|████████▊ | 39/44 [00:30<00:03,  1.52it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03837    0.01263   0.005292         30        640:  91%|█████████ | 40/44 [00:32<00:03,  1.06it/s]/content/yolov5/train.py:412 
        6/9      4.38G     0.0384     0.0126   0.005243         37        640:  93%|█████████▎| 41/44 [00:32<00:02,  1.33it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03834     0.0126   0.005258         38        640:  95%|█████████▌| 42/44 [00:34<00:02,  1.21s/it]/content/yolov5/train.py:412 
        6/9      4.38G     0.0383    0.01263   0.005223         44        640:  98%|█████████▊| 43/44 [00:35<00:00,  1.05it/s]/content/yolov5/train.py:412 
        6/9      4.38G    0.03828    0.01265   0.005191         34        640: 100%|██████████| 44/44 [00:36<00:00,  1.20it/s]
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 6/6 [00:06<00:00,  1.08s/it]
                   all        176        252      0.798      0.779      0.835      0.469

      Epoch    GPU_mem   box_loss   obj_loss   cls_loss  Instances       Size
  0%|          | 0/44 [00:00<?, ?it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.04131    0.01195   0.006642         34        640:   2%|▏         | 1/44 [00:00<00:10,  4.30it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03805    0.01364   0.005645         49        640:   5%|▍         | 2/44 [00:00<00:11,  3.77it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03904    0.01422   0.005769         47        640:   7%|▋         | 3/44 [00:00<00:11,  3.55it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03873    0.01352   0.005345         40        640:   9%|▉         | 4/44 [00:01<00:12,  3.32it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03726    0.01347   0.004992         45        640:  11%|█▏        | 5/44 [00:01<00:16,  2.35it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03585    0.01289   0.004685         33        640:  14%|█▎        | 6/44 [00:02<00:16,  2.35it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03574    0.01279   0.004521         40        640:  16%|█▌        | 7/44 [00:03<00:24,  1.53it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03533    0.01279   0.004448         44        640:  18%|█▊        | 8/44 [00:03<00:21,  1.70it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03527    0.01265   0.004346         37        640:  20%|██        | 9/44 [00:04<00:25,  1.38it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03537    0.01256    0.00458         37        640:  23%|██▎       | 10/44 [00:05<00:19,  1.72it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03555    0.01256   0.004512         42        640:  25%|██▌       | 11/44 [00:06<00:26,  1.24it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03548    0.01259   0.004415         43        640:  27%|██▋       | 12/44 [00:06<00:21,  1.48it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03551    0.01281   0.004516         46        640:  30%|██▉       | 13/44 [00:07<00:24,  1.24it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03532    0.01276    0.00469         40        640:  32%|███▏      | 14/44 [00:08<00:19,  1.53it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03487    0.01259   0.004647         34        640:  34%|███▍      | 15/44 [00:10<00:31,  1.08s/it]/content/yolov5/train.py:412 
        7/9      4.38G    0.03465     0.0125   0.004541         41        640:  36%|███▋      | 16/44 [00:10<00:24,  1.14it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03473    0.01261   0.004642         46        640:  39%|███▊      | 17/44 [00:12<00:34,  1.27s/it]/content/yolov5/train.py:412 
        7/9      4.38G    0.03482    0.01251   0.004658         36        640:  41%|████      | 18/44 [00:13<00:26,  1.01s/it]/content/yolov5/train.py:412 
        7/9      4.38G    0.03478    0.01264   0.004628         50        640:  43%|████▎     | 19/44 [00:15<00:35,  1.41s/it]/content/yolov5/train.py:412 
        7/9      4.38G    0.03483    0.01252   0.004569         34        640:  45%|████▌     | 20/44 [00:16<00:26,  1.12s/it]/content/yolov5/train.py:412 
        7/9      4.38G    0.03467    0.01244   0.004587         40        640:  48%|████▊     | 21/44 [00:18<00:33,  1.44s/it]/content/yolov5/train.py:412 
        7/9      4.38G     0.0343    0.01246   0.004558         43        640:  50%|█████     | 22/44 [00:18<00:24,  1.10s/it]/content/yolov5/train.py:412 
        7/9      4.38G      0.034     0.0124   0.004513         37        640:  52%|█████▏    | 23/44 [00:19<00:24,  1.19s/it]/content/yolov5/train.py:412 
        7/9      4.38G      0.034    0.01237   0.004439         39        640:  55%|█████▍    | 24/44 [00:20<00:18,  1.08it/s]/content/yolov5/train.py:412 
        7/9      4.38G      0.034    0.01235    0.00438         41        640:  57%|█████▋    | 25/44 [00:21<00:18,  1.01it/s]/content/yolov5/train.py:412 
        7/9      4.38G     0.0341    0.01237   0.004428         44        640:  59%|█████▉    | 26/44 [00:21<00:14,  1.26it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03422    0.01258   0.004473         59        640:  61%|██████▏   | 27/44 [00:22<00:15,  1.12it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03429    0.01252   0.004504         35        640:  64%|██████▎   | 28/44 [00:23<00:11,  1.39it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03429     0.0124     0.0045         32        640:  66%|██████▌   | 29/44 [00:24<00:12,  1.20it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03415    0.01243   0.004485         41        640:  68%|██████▊   | 30/44 [00:24<00:09,  1.50it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03405    0.01249   0.004462         48        640:  70%|███████   | 31/44 [00:25<00:10,  1.22it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03403    0.01263   0.004478         61        640:  73%|███████▎  | 32/44 [00:26<00:08,  1.47it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03409    0.01266   0.004455         43        640:  75%|███████▌  | 33/44 [00:27<00:09,  1.22it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03407    0.01259   0.004427         36        640:  77%|███████▋  | 34/44 [00:27<00:06,  1.53it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03411    0.01265   0.004389         52        640:  80%|███████▉  | 35/44 [00:28<00:07,  1.23it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03418    0.01257   0.004474         31        640:  82%|████████▏ | 36/44 [00:29<00:05,  1.48it/s]/content/yolov5/train.py:412 
        7/9      4.38G     0.0342    0.01252   0.004456         37        640:  84%|████████▍ | 37/44 [00:30<00:06,  1.03it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03412    0.01253   0.004447         44        640:  86%|████████▋ | 38/44 [00:31<00:04,  1.28it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03406    0.01251   0.004462         41        640:  89%|████████▊ | 39/44 [00:33<00:06,  1.22s/it]/content/yolov5/train.py:412 
        7/9      4.38G    0.03398     0.0125   0.004514         39        640:  91%|█████████ | 40/44 [00:33<00:03,  1.01it/s]/content/yolov5/train.py:412 
        7/9      4.38G    0.03402    0.01254   0.004508         45        640:  93%|█████████▎| 41/44 [00:35<00:04,  1.37s/it]/content/yolov5/train.py:412 
        7/9      4.38G    0.03415    0.01255   0.004505         42        640:  95%|█████████▌| 42/44 [00:36<00:02,  1.07s/it]/content/yolov5/train.py:412 
        7/9      4.38G    0.03415    0.01242   0.004488         24        640:  98%|█████████▊| 43/44 [00:38<00:01,  1.43s/it]/content/yolov5/train.py:412 
        7/9      4.38G    0.03417    0.01246   0.004553         40        640: 100%|██████████| 44/44 [00:39<00:00,  1.13it/s]
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 6/6 [00:04<00:00,  1.23it/s]
                   all        176        252        0.9      0.863      0.879      0.534

      Epoch    GPU_mem   box_loss   obj_loss   cls_loss  Instances       Size
  0%|          | 0/44 [00:00<?, ?it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.03421    0.01243    0.00498         44        640:   2%|▏         | 1/44 [00:00<00:10,  3.97it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.03175    0.01195   0.004326         38        640:   5%|▍         | 2/44 [00:00<00:11,  3.68it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.03204    0.01253   0.003963         44        640:   7%|▋         | 3/44 [00:00<00:11,  3.50it/s]/content/yolov5/train.py:412 
        8/9      4.38G      0.032    0.01244   0.003842         42        640:   9%|▉         | 4/44 [00:01<00:12,  3.26it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.03159    0.01256   0.004193         41        640:  11%|█▏        | 5/44 [00:01<00:16,  2.35it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.03091     0.0126   0.004326         47        640:  14%|█▎        | 6/44 [00:02<00:16,  2.29it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.03107    0.01259   0.004293         46        640:  16%|█▌        | 7/44 [00:03<00:23,  1.59it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.03042    0.01243   0.004186         39        640:  18%|█▊        | 8/44 [00:03<00:20,  1.73it/s]/content/yolov5/train.py:412 
        8/9      4.38G     0.0307    0.01227   0.004201         40        640:  20%|██        | 9/44 [00:04<00:24,  1.44it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.03031    0.01221   0.004083         40        640:  23%|██▎       | 10/44 [00:05<00:22,  1.50it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.03021    0.01208    0.00399         35        640:  25%|██▌       | 11/44 [00:06<00:27,  1.20it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.03014    0.01189   0.004279         37        640:  27%|██▋       | 12/44 [00:07<00:30,  1.06it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.03022    0.01153   0.004441         27        640:  30%|██▉       | 13/44 [00:08<00:31,  1.01s/it]/content/yolov5/train.py:412 
        8/9      4.38G    0.03015    0.01161   0.004347         47        640:  32%|███▏      | 14/44 [00:10<00:32,  1.08s/it]/content/yolov5/train.py:412 
        8/9      4.38G     0.0302    0.01167   0.004307         43        640:  34%|███▍      | 15/44 [00:11<00:32,  1.11s/it]/content/yolov5/train.py:412 
        8/9      4.38G    0.02997    0.01153   0.004285         33        640:  36%|███▋      | 16/44 [00:12<00:33,  1.19s/it]/content/yolov5/train.py:412 
        8/9      4.38G    0.02985    0.01144   0.004184         34        640:  39%|███▊      | 17/44 [00:13<00:31,  1.17s/it]/content/yolov5/train.py:412 
        8/9      4.38G    0.02992    0.01149   0.004329         43        640:  41%|████      | 18/44 [00:15<00:30,  1.19s/it]/content/yolov5/train.py:412 
        8/9      4.38G    0.02991    0.01143   0.004291         35        640:  43%|████▎     | 19/44 [00:15<00:26,  1.06s/it]/content/yolov5/train.py:412 
        8/9      4.38G    0.02989    0.01134   0.004193         36        640:  45%|████▌     | 20/44 [00:16<00:23,  1.02it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02996    0.01128    0.00413         38        640:  48%|████▊     | 21/44 [00:17<00:20,  1.15it/s]/content/yolov5/train.py:412 
        8/9      4.38G     0.0299    0.01118   0.004179         29        640:  50%|█████     | 22/44 [00:18<00:19,  1.15it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02989    0.01099   0.004106         21        640:  52%|█████▏    | 23/44 [00:18<00:17,  1.24it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02993    0.01104   0.004155         44        640:  55%|█████▍    | 24/44 [00:19<00:16,  1.21it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02994    0.01098   0.004174         38        640:  57%|█████▋    | 25/44 [00:20<00:14,  1.27it/s]/content/yolov5/train.py:412 
        8/9      4.38G     0.0298    0.01105    0.00412         47        640:  59%|█████▉    | 26/44 [00:21<00:14,  1.21it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02972    0.01106   0.004082         40        640:  61%|██████▏   | 27/44 [00:21<00:12,  1.37it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02972    0.01103   0.004036         33        640:  64%|██████▎   | 28/44 [00:22<00:12,  1.25it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02976    0.01122    0.00402         54        640:  66%|██████▌   | 29/44 [00:23<00:10,  1.43it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02975    0.01121   0.003975         40        640:  68%|██████▊   | 30/44 [00:24<00:11,  1.26it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02976    0.01136   0.003994         59        640:  70%|███████   | 31/44 [00:24<00:08,  1.47it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02975     0.0114   0.003994         46        640:  73%|███████▎  | 32/44 [00:26<00:11,  1.04it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02962     0.0114   0.003966         43        640:  75%|███████▌  | 33/44 [00:26<00:09,  1.14it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02964     0.0115   0.003933         55        640:  77%|███████▋  | 34/44 [00:28<00:10,  1.08s/it]/content/yolov5/train.py:412 
        8/9      4.38G    0.02975    0.01147   0.003995         31        640:  80%|███████▉  | 35/44 [00:29<00:09,  1.10s/it]/content/yolov5/train.py:412 
        8/9      4.38G    0.02972    0.01146   0.003957         41        640:  82%|████████▏ | 36/44 [00:31<00:09,  1.21s/it]/content/yolov5/train.py:412 
        8/9      4.38G    0.02974    0.01153   0.003951         48        640:  84%|████████▍ | 37/44 [00:32<00:08,  1.22s/it]/content/yolov5/train.py:412 
        8/9      4.38G    0.02966    0.01155   0.003927         45        640:  86%|████████▋ | 38/44 [00:33<00:07,  1.24s/it]/content/yolov5/train.py:412 
        8/9      4.38G     0.0297    0.01157   0.003939         47        640:  89%|████████▊ | 39/44 [00:34<00:06,  1.28s/it]/content/yolov5/train.py:412 
        8/9      4.38G    0.02971    0.01158   0.003968         45        640:  91%|█████████ | 40/44 [00:35<00:04,  1.19s/it]/content/yolov5/train.py:412 
        8/9      4.38G    0.02971    0.01157   0.003947         41        640:  93%|█████████▎| 41/44 [00:36<00:03,  1.05s/it]/content/yolov5/train.py:412 
        8/9      4.38G     0.0297    0.01159   0.003923         44        640:  95%|█████████▌| 42/44 [00:37<00:01,  1.05it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02963    0.01163   0.003901         51        640:  98%|█████████▊| 43/44 [00:38<00:00,  1.12it/s]/content/yolov5/train.py:412 
        8/9      4.38G    0.02969    0.01162   0.003919         32        640: 100%|██████████| 44/44 [00:38<00:00,  1.14it/s]
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 6/6 [00:04<00:00,  1.29it/s]
                   all        176        252      0.906      0.864      0.884      0.576

      Epoch    GPU_mem   box_loss   obj_loss   cls_loss  Instances       Size
  0%|          | 0/44 [00:00<?, ?it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02567   0.009438   0.002835         35        640:   2%|▏         | 1/44 [00:00<00:10,  4.05it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02804    0.01074   0.003034         45        640:   5%|▍         | 2/44 [00:00<00:11,  3.67it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02835    0.01077   0.003443         41        640:   7%|▋         | 3/44 [00:00<00:11,  3.57it/s]/content/yolov5/train.py:412 
        9/9      4.38G     0.0289    0.01037   0.003312         33        640:   9%|▉         | 4/44 [00:01<00:12,  3.11it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02878    0.01051   0.003199         39        640:  11%|█▏        | 5/44 [00:02<00:19,  1.98it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02821    0.01047   0.003109         43        640:  14%|█▎        | 6/44 [00:02<00:24,  1.57it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02808    0.01048   0.003694         34        640:  16%|█▌        | 7/44 [00:04<00:33,  1.09it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02778    0.01014   0.003604         28        640:  18%|█▊        | 8/44 [00:05<00:33,  1.08it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02804    0.01046   0.003522         44        640:  20%|██        | 9/44 [00:07<00:41,  1.20s/it]/content/yolov5/train.py:412 
        9/9      4.38G    0.02794    0.01043   0.003425         41        640:  23%|██▎       | 10/44 [00:07<00:34,  1.01s/it]/content/yolov5/train.py:412 
        9/9      4.38G    0.02779    0.01059   0.003348         46        640:  25%|██▌       | 11/44 [00:09<00:42,  1.30s/it]/content/yolov5/train.py:412 
        9/9      4.38G    0.02785    0.01077   0.003339         49        640:  27%|██▋       | 12/44 [00:10<00:36,  1.14s/it]/content/yolov5/train.py:412 
        9/9      4.38G    0.02806    0.01095   0.003362         52        640:  30%|██▉       | 13/44 [00:12<00:42,  1.36s/it]/content/yolov5/train.py:412 
        9/9      4.38G    0.02797     0.0111   0.003386         44        640:  32%|███▏      | 14/44 [00:12<00:33,  1.12s/it]/content/yolov5/train.py:412 
        9/9      4.38G    0.02801    0.01109   0.003476         40        640:  34%|███▍      | 15/44 [00:14<00:32,  1.13s/it]/content/yolov5/train.py:412 
        9/9      4.38G    0.02807    0.01097    0.00341         34        640:  36%|███▋      | 16/44 [00:14<00:24,  1.15it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02809    0.01111   0.003541         50        640:  39%|███▊      | 17/44 [00:15<00:26,  1.03it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02793    0.01103   0.003483         35        640:  41%|████      | 18/44 [00:15<00:19,  1.31it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02786    0.01107   0.003528         45        640:  43%|████▎     | 19/44 [00:17<00:22,  1.12it/s]/content/yolov5/train.py:412 
        9/9      4.38G     0.0278    0.01109   0.003599         44        640:  45%|████▌     | 20/44 [00:17<00:16,  1.42it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02796    0.01125   0.003618         52        640:  48%|████▊     | 21/44 [00:18<00:18,  1.22it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02788     0.0111   0.003641         30        640:  50%|█████     | 22/44 [00:18<00:14,  1.48it/s]/content/yolov5/train.py:412 
        9/9      4.38G     0.0278    0.01113   0.003581         46        640:  52%|█████▏    | 23/44 [00:19<00:17,  1.23it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02773    0.01103   0.003554         34        640:  55%|█████▍    | 24/44 [00:20<00:13,  1.49it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02763    0.01097   0.003562         35        640:  57%|█████▋    | 25/44 [00:21<00:15,  1.21it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02759     0.0111   0.003549         59        640:  59%|█████▉    | 26/44 [00:21<00:11,  1.52it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02753     0.0111   0.003641         37        640:  61%|██████▏   | 27/44 [00:22<00:14,  1.20it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02742    0.01122   0.003615         54        640:  64%|██████▎   | 28/44 [00:23<00:11,  1.41it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02738    0.01122   0.003586         44        640:  66%|██████▌   | 29/44 [00:25<00:15,  1.03s/it]/content/yolov5/train.py:412 
        9/9      4.38G     0.0272    0.01111   0.003538         29        640:  68%|██████▊   | 30/44 [00:25<00:11,  1.20it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02726    0.01111   0.003516         42        640:  70%|███████   | 31/44 [00:27<00:14,  1.08s/it]/content/yolov5/train.py:412 
        9/9      4.38G     0.0273    0.01108   0.003508         38        640:  73%|███████▎  | 32/44 [00:28<00:12,  1.02s/it]/content/yolov5/train.py:412 
        9/9      4.38G    0.02736     0.0111   0.003482         46        640:  75%|███████▌  | 33/44 [00:29<00:13,  1.24s/it]/content/yolov5/train.py:412 
        9/9      4.38G    0.02721    0.01105   0.003502         36        640:  77%|███████▋  | 34/44 [00:30<00:10,  1.07s/it]/content/yolov5/train.py:412 
        9/9      4.38G    0.02722    0.01106   0.003519         45        640:  80%|███████▉  | 35/44 [00:32<00:11,  1.26s/it]/content/yolov5/train.py:412 
        9/9      4.38G    0.02723    0.01114   0.003505         52        640:  82%|████████▏ | 36/44 [00:33<00:09,  1.15s/it]/content/yolov5/train.py:412 
        9/9      4.38G    0.02715    0.01109   0.003494         36        640:  84%|████████▍ | 37/44 [00:33<00:07,  1.03s/it]/content/yolov5/train.py:412 
        9/9      4.38G    0.02704    0.01108   0.003454         43        640:  86%|████████▋ | 38/44 [00:34<00:05,  1.11it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02701    0.01109   0.003431         37        640:  89%|████████▊ | 39/44 [00:35<00:04,  1.09it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02708     0.0111     0.0035         47        640:  91%|█████████ | 40/44 [00:35<00:03,  1.24it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02702    0.01108   0.003545         35        640:  93%|█████████▎| 41/44 [00:37<00:02,  1.09it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02697    0.01107    0.00353         43        640:  95%|█████████▌| 42/44 [00:37<00:01,  1.29it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02695    0.01103   0.003496         34        640:  98%|█████████▊| 43/44 [00:38<00:00,  1.22it/s]/content/yolov5/train.py:412 
        9/9      4.38G    0.02705    0.01113   0.003512         48        640: 100%|██████████| 44/44 [00:38<00:00,  1.13it/s]
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 6/6 [00:05<00:00,  1.13it/s]
                   all        176        252      0.929      0.862      0.896      0.601

10 epochs completed in 0.127 hours.
Optimizer stripped from runs/train/exp/weights/last.pt, 14.4MB
Optimizer stripped from runs/train/exp/weights/best.pt, 14.4MB

Validating runs/train/exp/weights/best.pt...
Fusing layers... 
Model summary: 157 layers, 7020913 parameters, 0 gradients, 15.8 GFLOPs
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 6/6 [00:07<00:00,  1.20s/it]
                   all        176        252       0.93      0.861      0.896      0.601
             crosswalk        176         49      0.974      0.762      0.872      0.562
            speedlimit        176        151       0.98      0.988      0.995      0.727
                  stop        176         26      0.858      0.927      0.948      0.665
          trafficlight        176         26      0.908      0.769      0.769      0.451
Results saved to runs/train/exp
YOLOv5 🚀 v7.0-378-g2f74455a Python-3.10.12 torch-2.5.0+cu121 CUDA:0 (Tesla T4, 15102MiB)

Fusing layers... 
Model summary: 157 layers, 7020913 parameters, 0 gradients, 15.8 GFLOPs
image 1/10 /content/test_images/road171.png: 640x480 1 crosswalk, 1 trafficlight, 8.6ms
image 2/10 /content/test_images/road190.png: 640x480 2 crosswalks, 7.8ms
image 3/10 /content/test_images/road297.png: 640x480 1 speedlimit, 8.1ms
image 4/10 /content/test_images/road393.png: 640x480 1 speedlimit, 9.6ms
image 5/10 /content/test_images/road445.png: 640x480 1 speedlimit, 13.6ms
image 6/10 /content/test_images/road531.png: 640x480 3 crosswalks, 1 speedlimit, 8.0ms
image 7/10 /content/test_images/road563.png: 640x480 1 crosswalk, 1 speedlimit, 8.2ms
image 8/10 /content/test_images/road656.png: 640x480 1 crosswalk, 3 speedlimits, 8.1ms
image 9/10 /content/test_images/road75.png: 416x640 1 stop, 38.5ms
image 10/10 /content/test_images/road863.png: 640x480 1 speedlimit, 9.5ms
Speed: 0.6ms pre-process, 12.0ms inference, 1.6ms NMS per image at shape (1, 3, 640, 640)
Results saved to /content/output_images_yolo/detections
10 labels saved to /content/output_images_yolo/detections/labels
In [ ]:
import locale
import os
import random
import shutil
import cv2
import numpy as np
import xml.etree.ElementTree as ET
from sklearn.preprocessing import LabelEncoder
import yaml
import sys
import glob
from yolov5.train import run as train_run
from yolov5.detect import run as detect_run
from google.colab.patches import cv2_imshow


def getpreferredencoding(do_setlocale=True):
    return "UTF-8"
locale.getpreferredencoding = getpreferredencoding


annotations_path = '/content/annotations/'
images_path = '/content/images/'
train_images_path = '/content/images/train/'
val_images_path = '/content/images/val/'
train_labels_path = '/content/labels/train/'
val_labels_path = '/content/labels/val/'
test_images_path = '/content/test_images/'
output_images_path = '/content/output_images_yolo'
tt = '/content/output_images_yolo/results'

if not os.path.exists(output_images_path):
    os.makedirs(output_images_path)


target_classes = ['traffic_light', 'stop_sign', 'road_sign']


def detect_and_save_images(test_images_path, output_images_path, weights_path):
    detect_run(
        source=test_images_path,
        weights=weights_path,
        imgsz=(640, 640),
        conf_thres=0.6,
        save_txt=True,
        save_conf=True,
        nosave=False,
        project=output_images_path,
        name='results',
        exist_ok=True
    )
    print(f"YOLOv5 detection completed. Labeled images saved in {output_images_path}.")

if len(os.listdir(test_images_path)) == 0:
    raise AssertionError(f"No images found in {test_images_path}. Make sure the directory is populated with images.")


weights_dir = max(glob.glob('runs/train/exp*/weights'), key=os.path.getmtime) if glob.glob('runs/train/exp*/weights') else None
best_weights_path = os.path.join(weights_dir, 'best.pt') if weights_dir else 'yolov5s.pt'


detect_and_save_images(test_images_path, output_images_path, best_weights_path)


def display_labeled_images(output_images_path, target_classes):
    result_path = os.path.join(output_images_path, 'results')
    output_files = os.listdir(result_path)

    class_names = ['traffic_light', 'stop_sign', 'road_sign']
    class_ids = {name: i for i, name in enumerate(class_names)}

    for output_file in output_files:
        if output_file.endswith(('.jpg', '.png')):
            img = cv2.imread(os.path.join(result_path, output_file))


            label_file = output_file.replace('.jpg', '.txt').replace('.png', '.txt')
            label_file_path = os.path.join(result_path, label_file)


            if os.path.exists(label_file_path):
                with open(label_file_path, 'r') as f:
                    lines = f.readlines()
                    for line in lines:
                        class_id, x_center, y_center, bbox_width, bbox_height = map(float, line.strip().split())
                        if class_id in [class_ids[name] for name in target_classes]:
                            h, w, _ = img.shape
                            xmin = int((x_center - bbox_width / 2) * w)
                            ymin = int((y_center - bbox_height / 2) * h)
                            xmax = int((x_center + bbox_width / 2) * w)
                            ymax = int((y_center + bbox_height / 2) * h)

                            label_text = class_names[int(class_id)]
                            cv2.rectangle(img, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)
                            cv2.putText(img, label_text, (xmin, ymin - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2)

                cv2_imshow(img)

display_labeled_images(output_images_path, target_classes)


import matplotlib.pyplot as plt
output_images_path = '/content/yolov5/runs/train/exp'
%matplotlib inline

def display_output_images(output_images_path):
    image_files = [f for f in os.listdir(output_images_path) if f.endswith(('.png', '.jpg', '.jpeg'))]

    for image_file in image_files:
        img = cv2.imread(os.path.join(output_images_path, image_file))
        if img is not None:
            img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
            plt.imshow(img_rgb)
            plt.title(image_file)
            plt.axis('off')
            plt.show()
        else:
            print(f"Error loading {image_file}")

display_output_images(output_images_path)
YOLOv5 🚀 v7.0-378-g2f74455a Python-3.10.12 torch-2.5.0+cu121 CUDA:0 (Tesla T4, 15102MiB)

Fusing layers... 
Model summary: 157 layers, 7020913 parameters, 0 gradients, 15.8 GFLOPs
image 1/10 /content/test_images/road171.png: 640x480 1 crosswalk, 9.9ms
image 2/10 /content/test_images/road190.png: 640x480 1 crosswalk, 10.6ms
image 3/10 /content/test_images/road297.png: 640x480 1 speedlimit, 10.6ms
image 4/10 /content/test_images/road393.png: 640x480 1 speedlimit, 11.3ms
image 5/10 /content/test_images/road445.png: 640x480 1 speedlimit, 11.5ms
image 6/10 /content/test_images/road531.png: 640x480 1 speedlimit, 10.0ms
image 7/10 /content/test_images/road563.png: 640x480 1 crosswalk, 1 speedlimit, 10.4ms
image 8/10 /content/test_images/road656.png: 640x480 1 crosswalk, 2 speedlimits, 10.1ms
image 9/10 /content/test_images/road75.png: 416x640 1 stop, 11.1ms
image 10/10 /content/test_images/road863.png: 640x480 1 speedlimit, 11.0ms
Speed: 0.7ms pre-process, 10.6ms inference, 2.5ms NMS per image at shape (1, 3, 640, 640)
Results saved to /content/output_images_yolo/results
10 labels saved to /content/output_images_yolo/results/labels
YOLOv5 detection completed. Labeled images saved in /content/output_images_yolo.

Comparison of CNN and YOLO Methods Based on Project Implementation¶

Feature CNN (Convolutional Neural Network) YOLO (You Only Look Once)
Architecture Utilizes a traditional CNN structure for image classification Employs a single neural network to detect multiple objects in real time
Real-time Performance Generally slower, suitable for offline image classification tasks Designed for high efficiency, enabling real-time object detection
Accuracy Good accuracy in detecting and classifying individual road signs High accuracy for detecting multiple road signs simultaneously
Output Outputs class labels for individual road signs Outputs bounding boxes and class labels for multiple detected road signs in a single pass
Data Processing Requires separate handling and training for each image Processes entire images in one go, streamlining detection
Training Difficulty May require more tuning and a longer training time due to individual image handling Generally simpler and faster training process with the right configuration
Application Scenarios Best for tasks needing high precision, such as detailed classification Ideal for real-time applications like traffic monitoring and automated surveillance
Implementation Complexity Easier to implement but may require extensive data preprocessing More complex to set up initially but efficient for real-time applications

Summary¶

  • CNN is effective for detailed classification tasks but is limited in speed for real-time applications.
  • YOLO excels in scenarios where fast detection of multiple objects is required, making it suitable for applications like road sign detection in real-time traffic situations.
In [ ]: